Интерфейсы / Шрифты Adding/Removing fonts in Puppy∞ Font Support∞ mkfontdir, mkfontscale, bdftopcf и несколько полезных вспомогательных ссылок New language support DotPup package for IceWM∞ от GuestToo Menu translator DotPup package∞ (Новая ссылка) Discussion on how to change Puppy's menus∞
Методы Ввода(Input) Chinese Puppy support Сначала установите DotPup для поддержки упрощенного китайского, для поддержки традиционного китайского установите вместо DotPups (остальные четыре??).
Клавиатура Creating a keyboard layout∞ Virtual Keyboard∞ International keyboard support∞ How do I add Latvian keyboard layout?∞ Puppy 1.0.4: German keymap is de.map; should be de-latin.map∞
Приоложения Leafpad support∞ Gnumeric support∞ (Новая ссылка) AbiWord support∞ (Новая ссылка) Multiple language Word Processor∞ Hebrew and Arabic Linux Browser∞ OpenOffice.org 2.03 with international support DotPups∞ (Новая ссылка)
Немного улучшена раскладка клавиатуры для различных стран. Некоторые страны были добавлены в консоль раскладки клавиатуры - это диалоговое окно появляется при первом запуске Puppy, также страны были добавлены в мастера установки мыши и клавиатуры. Консоль обращается к раскладке клавиатуры еще до запуска X'ов. Xvesa Kdrive X сервер использует тот же формат консоли, однако Xorg имеет свою, абсолютно независимую, системы xkb.
К сожалению, в Puppy 1.0.7 встроен Xorg без xkb компонента, а это значит, что установлен по умолчанию, "US" – исключением может быть xmodmap DotPup пакет разработанных Марком Ульрихом(Mark Ulrich) макетов которые обеспечивают поддержку Xorg.
Xkb компонент (/etc/X11/xkb) я бросил из-за его размера в 1.7 мб, плюс я был на нервах из за того что мы должны были делать дубликат макета системы. Однако, я ужал xkb до размера в 0.5мб и включил в дистрибутив Puppy. Моя “обрезанная” версия xkb будет включена с версии 1.0.8, однако я не включил его в мастер установки клавиатуры, так что в настоящее время это влияет только на формат консоли. Однако, выбранный формат консоли можно быть установлен автоматически "через поток" на Xorg, запустив Xorg Видео Мастер .
Новым пользователям придеться делать это в любом случае – сначала они увидят диалог настройки раскладки клавиатуры, затем диалог настройки мыши, а затем Xorg мастер. Если вы обновляетесь до версии 1.0.8, я рекомендую запустить Xorg мастер снова - при отключенных X'ах, запустите "xorgwizard", и когда вы перезапустите X'ы, вы найдете правильную раскладку клавиатуры в /etc/X11/xorg .conf – на подобии такой строки:
Option "XkbLayout" "de"
Так как у меня установленна только US(США) раскладка клавиатуры и к тому же я мало знаю о других раскладках, тестирование получаеться довольно скудным. Я проверил что выбрав "de" я получаю "qwertz" раскладку, а "fr" привел к "azerty" раскладке. Пользователи должны проверить другие раскладки и если возникнут проблемы обюратиться на форум(после релиза версии 1.0.8).
" Puppy теперь имеет языковыбирательный скрипт для ... хорошо, для того чтобы выбирать язык. Я решил, что в live-CD будут входить только en_US и en_AU, но этот скрипт позволяет вам выбрать тот язык, который вы хотите, и затем скачать из Интернета. Скрипт принимает новый язык путем изменением переменных среды LANG. Языковыбирательный скрипт может быть запущен из меню панели управления. Я до сих пор не полностью понимаю некоторые места. Я смотрел на скрипт переключения языков в Austrumi – он, переключаясь между английским и латышским - просто изменяет переменную среды LANG в /etc/profile, а затем перезапускает X'ы. Однако, мои тесты показывают, что этого недостаточно, все равно требуется полная перезагрузка системы. Во всяком случае, возможность выбирать язык является шагом в правильном направлении, и если кто-то придумал что-то большее, и хочет переделать скрипт, действуйте. "Барри о Puppy 1.0.5
koreanair по 03 мая 2006 04:31 (комментарий на puppylinux.org)
"... проблема с Hangul(Корейский) шрифтом. Я решил эту проблему просто, используя систему шрифтов Baekmook. Если вы хотите использовать корейский язык, вы можете скачать Baekmook шрифты с сайта ниже:
После того как загрузка закончиться просто распакуйте все эти шрифты в "/usr/X11R6/lib/X11/fonts/misc". Затем установите в Netscape Navigator настройки для корейски шрифтов. И затем установить в view/character кодировку для корейского.
Корейские пользователи, пожалуйста запомните это - для того чтобы использовать этот красивый live-cd линукс. Ну, на этот раз я попытаюсь установить корейский язык для методов ввода ... " снимок∞
Kark: Нескоторые приложения могут быть легко переведены на ваш язык. Opera: 1. Скачайте языковой файл∞ и поместите его в (/usr/share/opera/locale). 2. Теперь выберите в tools-preferenses ваш язык. Abiword: 1. Скачать Abiword.profile файл для вашего языка, или скопируйте из другой системы. Поместите его в /root/.Abisuite/. 2. Также скачайте строковый(string) файл на вашем языке, и скопируйте его в строковые(string) каталоги. 3. Скачайте файл словаря и поместите его в каталог словарей. подробнее здесь Firefox: 1. Скачайте Firefox на вашем языке. 2. Распакуйте его и запустите программу установки. Mozilla набор: 1. Скачайте Mozila на вашем языке. 2. Распакуйте его и запустите программу установки (не рекомендуется устанавливать на уже установленные версии).
G2: Для отображения документациии в международных шрифтах Mozilla / Firefox / Opera (и Abiword, Leafpad, OpenOffice и т.д.), поместите Unicode шрифт в /root/.fonts Скачать Unicode шрифт можно здесь: http://www.ipd.uka.de/~muelle/ARIALUNI.zip или здесь http://orwell.ru/download/aruniupd.exe Или вы можете скопировать из /mnt/home/windows/fonts в /root/.fonts все ваши Windows шрифты, они будут работать и в Puppy.
Для просмотра веб страниц на других языках используя обновленную версию Dillo 0.8.5: Puppy: Помимо добавления шрифта Unicode в /root/.fonts, вам так же потребуется: 1. Установить использование шрифта (Arial Unicode MS) в опциях Dillo 0.8.5 2. Скачать пакет glib (например здесь) и установить его (просто скопировать файлы в нужную директорию): (это версия 2.3.2, теперь я знаю, что Puppy использует 2.3.2) ... Я не знаю, почему добавив этот пакет все начинает работать, и не знаю, какие файлы за что отвечают. Может, кто-нибудь разобрался в этом лучше меня и сможет добавить обьяснение? G2 комментарии: ...Я просто заметил, что UTF - 8 шрифты, работают с Dillo в Puppy ... это другие шрифты, например Shift_JIS, не работают. ...Я также заметил, что Google посылает Firefox страницы с символами в формате UTF - 8, но в то же время он посылает Dillo страницы с форматом символов Shift_JIS (которые с Dillo не работают) Wikipedia, кажеться, работает с Dillo нормально, вот примеры для проверки: http://www.wikipedia.org/ http://www.google.com/intl/ja/ ajlb9z.jpg
Для того чтобы добавить поддержку новых регионов:
Решение A. Hacao (тестировалось в Vector 5): В Vector 5 успешно воспроизводится и печатается Вьетнамский:
1) Установить кодировку на en_US.UTF - 8
$ locale (show LANG=en_US) $ su # mcedit /etc/profile.d/lang.sh (или другой редактор)
- Добавить # (комментарий) до"export LANG=en_US" - Убрать # (окончание комментария) до "export LANG=en_US.UTF-8" - Нажмите F2 для того чтобы сохранить , F10 для выхода
# locale или $ locale (show LANG=en_US.UTF-Cool
2) Сделайте ссылку en_US.UTF-8 на /usr/share/locale $ su # mkdir /usr/share/locale/en_US.UTF-8 # localedef -v -c -i en_US -f UTF-8 /usr/share/locale/en_US.UTF-8 # cd /usr/lib/locale # ln -s /usr/share/locale/en_US.UTF-8 en_US.UTF-8 3) устаноите .bashrc или .bash_profile
$ mcedit /home/hacao/.bash_profile (где hacao имя моего аккаунта) Добавьте три строки: export XMODIFIERS="@im=unikey" export GTK_IM_MODULE="xim" export LANG=en_US.UTF-8
- Нажмите F2 для того чтобы сохранить , F10 для выхода - Перезайдите в систему или презапустите ее. - Проверьте еще раз:
$ echo $LANG (show en_US.UTF-8 is OK!) $ echo $XMODIFIERS (show @im=unikey is OK !) $ echo $GTK_IM_MODULE (show xim is OK!)
4) Настройка Unikey (печать на вьетнамском) - Скачайте файл с http://unikey.sourceforge.net/linux.php - Распакуйте в /home/hacao/addon Например у меня это папка: /home/hacao/addon/x-unikey-0.9.2
$ cd /home/hacao/addon/x-unikey-0.9.2 $ ./configure $ make $ su # make install
Это все! Я ввожу "unikey" в Xterm и могу печатать на вьетнамском!
$unikey
Открывайте редактор и наслаждайтесь!
$mcedit (или какой-нибудь другой редактор)
Получилось! P / S: Правда у меня пока не получаеться с Puppy 1.04.
Спасибо, но где вы, запусткаете unikey? в .bashrc?
Вопрос: Я могу включить китайский язык так: Я запускаю в rxvt. Потом я запускаю leafpad. я зупускаю еще один rxvt и abiword в нем. Но если я запускаю leafpad и abiword с рабочего стола, я не могу пользоваться китайским. Почему? Спасибо.
Ответ: Вам необходимо задать эти переменные в /etc/profile. Заметьте, что .bashrc при работе обращаеться к /etc/profile.
Также стоит отметить что вы можете изменить /usr/sbin/chooselocale ... смотреть этот поток: http://www.murga.org/~puppy/viewtopic.php?t=3134 с улучшением локализаций, а затем отправить исправленный срипт мне.
Решение B. Kark'а (базируеться на решении Hacao, тестировалось Puppy)
Я нашел gcc здесь, и в один из zip архивов был включен “localedef” (Примечание Puppy: Я не могу найти "localedef" ни в одном из zip врхивов, но я нашел их в пакете glibc, то же требуется для просмотра страниц на других языках с помошью Dillo. Другие файлы, например, no_NO, также включены. К тому же сейчас "localedef" уже включен в dotpup.)
Сначала я скопировал “no_NO”из другого дистрибутива затем я открыл терминал и ввел:
Затем я изменил LANG = C на LANG=no_NO.ISO-8859-1 в /etc/profile
Теперь я не получаю сообщения об ошибках касательно отсутствия подержки региона, и jvm (JAVA виртуалка) работает как и должна работать.
Отметка сделанная Kark'ом позже: Небольшая ошибка в процедуре добавления поддержки региона: Я слепо скопировал из Hacao, но он делал это в векторе, так последняя строчка #cd /usr/lib/locale, не имеет смысла в Puppy(я так думаю), поскольку нет /usr/lib/locale.
Просто создаем каталог и используем localedef для добавиления нового региона, этого достаточно, для отображения региона, и после установки региона в nb_NO (например) программы смогут отображаться в Норвежкских шрифтах. Есть, однако, много программ, которые обычно ведут себя по разному, возможно из-за отсутствия поддержки i18n которую убрали в процессе компиляции.
Теперь, когда добавлена поддержка регионов, есть более простой способ получения Abiword на нужном языке. Если у вас есть строковые(strings) файлы на вашем языке, вы можете попросить Abiword использовать информацию о регионе для установки используемого языка. Для этого добавьте в AbiWord.Profile перменную useenvlocale равную 1, например так: useenvlocale = "1"
Компилирование ядра (kernel) и модулей для Puppy Linux. Скрытый текст
Примечание: В будущем, я планирую использовать T2 систему, чтобы компилировать ядро и модули для Puppy. T2 в настоящее время устанавливается, чтобы компилировать ядро и многочисленные дополнительные модули, но не та версия, которая в данный момент используется в Puppy. Я предполагаю синхронизировать в будущих версиях Puppy, таким образом ядро, откомпилированные в T2, будет использоваться в Puppy. См. http://www.puppyos.net/pfs/ для дальнейшей информации относительно Puppy и T2.
У Puppy есть очень простой способ в строится C/C ++ компилируемыми среды при помощи добавления единственного файла "devx_xxx.sfs", где "xxx" - номер версии. Например, у Puppy 2.12 был бы файл разработки соответствия названный "devx_212.sfs". Работая в режиме LiveCD, поместите файл devx_xxx.sfs в тотже самое место где находится ваш персональный файл настроек pup_save.3fs, который, обычно, находится в каталоге/mnt/home/. Это также относится и для других режимов инсталляции, у которых есть pup_save.3fs файл. Если Puppy установлен на жесткий диск с полной инсталляцией "Option 2", то в этом случае нет никакого личного файла, посмотрите на web-страницах Puppy, чтобы узнать, как установить devx_xxx.sfs.
Отметьте, я лично использовал полную инсталляцию Puppy, чтобы компилировать ядро и все дополнительные драйверы. У devx_xxx.sfs есть файлы заголовка ядра, для того, чтобы приложения, нуждающиеся в них, могли быть сразу же откомпилированы. Однако, если вам нужно откомпилировать фактическое ядро, или должны откомпилировать драйвер или еще что-то, нуждающиеся в полном источнике ядра, затем продолжайте читать... Загрузка ядра
Если Вы загружаете "древнее" ядро, Puppy требует один или более исправлений (patch). Однако, чтобы облегчить вам работу меня есть уже готовый источник онлайн. Пожалуйста зайдите на мою Страницу загрузки на уже исправленное(патченное) ядро. Также имеется это и на компакт-диске - подробности на Странице загрузки. Примечание, Puppy 2.02 и 2.10 использует то же самое ядро, версию 2.6.16.7. У Puppy 2.01 и ранние также 2.6.16.7 ядро, но он откомпилирован с различными опциями выбора конфигурации, таким образом модули не совместимы. Эти версии требуют только одного исправления для squashfs. Puppy 2.12 имеет ядро 2.6.18.1 и имеет три исправления; squashfs, значение loglevel в консоли по умолчанию и исправление с выключением компютера.
Эти команды исправляющие ядро даны исключительно для вашего самообразования, поскольку доступно уже исправленное ядро ...
Первое, что вы должны вначале сделать это скачать само ядро. Оно находится тут http://www.kernel.org, чтобы найти ссылку на подходящий сайт загрузки. Это должен быть "древний" источник, доступный на kernel.org или его зеркалах.
Подключитесь к интернету, загрузите ядро в папку /usr/src . Затем распакуйте его: # cd/usr/src # tar-jxf linux-2.6.16.7.tar.bz2 ИЛИ... # tar-zxf linux-2.6.16.7.tar.gz
Вы должны видеть эту папку: /usr/src/linux-2.6.16.7. Вы тогда должны удостовериться, что эта ссылка указывает на ядро: # ln -sf linux-2.6.16.7 linux # ln -sf linux-2.6.16.7 linux-2.6.9
Вы должны применить следующие исправления, так, чтобы у Вас был точно тот же самый источник который используется при компилировании ядра для Puppy. Иначе, у вас будут появляться сообщения об ошибках "unresolved symbols"(нерешенными символами), при компиляции драйвера и затем пытаетесь использовать его с ядром Puppy. Применение исправления squashfs
Во-вторых, примените исправление Squashfs. Исправление Squashfs добавляет поддержку Squashfs делающую файловую систему только для чтения.
Загрузите исправление, squashfs2.1-patch-k2.6.9.gz, в папку /usr/src. Отметьте,что это исправление было сделано для версии 2.6.9 ядра, но продолжает работать и в 2.6.11.x версиях, пока существует ссылка на linux-2.6.9. Затем, примените исправление: # cd/usr/src # gunzip squashfs2.1-patch-k2.6.9.gz # cd/usr/src/linux-2.6.11.11 Земечание, у p1 это число 1, не символ l... (Отличная шутка прим. перев.) # patch --dry-run -p1 < ../squashfs2.1-patch # patch -p1 < ../squashfs2.1-patch
Готово! Ядро готово к компилированию!
Компилирование ядра
Необходимо получить файл конфигурации для ядра. Копия его находится в папке /lib/modules.
Затем проделайте эти шаги: # cd/usr/src/linux-2.6.18.1 Если есть .config файл, скопируйте его куда-нибудь временно или переименуйте. # make clean # make mrproper Скопируйте .config файл для Puppy в /usr/src/linux-2.6.18.1... В /lib/modules у него будет различные названия, так что переименуйте в ".config"... Следующие шаги считывают .config файл и генерирует новый. # make menuconfig ... сделайте любые изменения, которые вы желаете и сохраняете их. У Вас теперь будет новый .config файл, и Вы должны скопировать его куда-нибудь для сохранности. См. примечание ниже * # make bzImage
Вот теперь вы скомпилировали ядро.
*Примечание относительно menuconfig(конфигурация меню). Я использовал его целую вечность, так что считайте некоторые вещи само собой разумеющимся, однако новичок мог бы быть сбит с толку, желая выйти от программы. В меню верхнего уровня есть меню, чтобы сохранить конфигурацию - игнорируйте его. Только нажмите TAB клавишу (или клавиша стрелки "вправо"), чтобы подсветить Exit "кнопку" и нажимите клавишу ENTER. После этого вас спросят, хотите ли Вы сохранить новую конфигурацию, и ваш ответ должен быть Да (Yes)
Отлично, вы найдете ядро Linux в папке /usr/src/linux-2.6.18.1/arch/i386/boot/bzImage
Компилирование модулей
Теперь войдите в /lib/modules и если уже есть папка, названная "2.6.18.1", переименуйте папку "2.6.18.1" в "2.6.18.1-old".
Теперь устанавливать новые модули: # cd/usr/src/linux-2.6.18.1 # make modules # make modules_install
... после этого вы должны найти новые модули установленными в папке /lib/modules/2.6.18.1.
Отметьте, последний шаг выше выполняет программу "depmod" и это может дать сообщения об ошибках о недостающих символах для некоторых из модулей. Не волнуйтесь об этом - один из разработчиков лоханулся, и это означает, что мы не можем использовать тот модуль.
Как использовать новое ядро и модули
Лучше, если у Вас есть установленный Puppy Выпущенный(Unleashed). Тогда tarball расширен и существуют 2 каталога: "boot" и "kernels".
"boot" содержит структуру файла и скрипт, чтобы создать начальный виртуальный диск. Вы должны будете поместить туда некоторые модули ядра.
У "kernels" каталога есть каталог kernels/2.6.18.1/, и Вы должны будете заменить модули с Вашими обновленными. Можно и не заменять если Вы перекомпилировали тот же самое версию ядра (2.6.18.1).
Отметьте, что в kernels/2.6.18.1 есть файл c именем 'System.map'. Вы должны переименовать его и заменить новым из /usr/src/linux-2.6.18.1. Просмотрите папку kernels/2.6.18.1/, и Вы должны знать что нужно обновить.
Если Вы компилировали ядро в полной инсталляции Puppy, Вы можете перезагрузить используя новое ядро. 'make modules_install' шагом выше, устанавливали новые модули в /lib/modules/2.6.18.1, но вы должны также установить новое ядро. Я гружусь с Grub, и просто скопирую новое ядро в каталог /boot (и переименуйте файл с 'bzImage' в 'vmlinuz').
(c) Copyright 2006 Barry Kauler www.puppyos.com/ Никакая часть этой страницы не должна быть воспроизведена где-нибудь еще. Бывало, что части моих web-страниц вставляются на других сайтах которые не обновляются, тогда как я обновляю свои страницы регулярно. Это не желательная ситуация, таким образом пожалуйста заходите только на мои страницы.
Последнее обновление: Февраль, 17, 2007, только для Puppy начиная с версии 2.14 Краткая справка Термин "пакет" широко используется в Linux для именования приложений и их файлов поддержки. Если вы используете ОС Windows, вы знаете что можете скачать приложение, дважды кликнуть на нем левой кнопкой мыши и оно установиться, или ваш веб браузер может установить его сразу из интернета. Здесь тоже самое. "Пакеты" отличаются от фактически исполняемых файлов названием и тем, что в Puppy пакеты имеют имена оканчивающиеся на ".pet" (или ".pup") для того чтобы нагляднее показать что это пакеты.
Puppy начал жизнь в качестве набора программ на live-CD, и в нем не было опции добавления пакетов. Основной причиной этого было то, что все файлы каталога /usr сохранялись в один файл с именем "usr_cram.fs", он представлял собой изнутри файловую систему squashfs – которая в свою очередь является сжатой версией файловой системы, допускающей только чтение файлов. Таким образом отсутствовал способ записи в /usr. Кроме того, /bin, /sbin, /etc, /var и все остальное находилось в ram – по сути, они были на live-CD в файле image.gz который загружался в ram при старте - то есть, все записанное в вышеперечисленные директории терялось после окончания сеанса.
Исключением являлся то случай если Puppy была установлена на жёсткий диск, причём в полном варианте, в котором Puppy занимает весь раздел жёсткого диска – в отличии от того что мы называем "frugal" (Легкая установка, самый минимум) или "coexist" (Одновременное использование нескольких систем) установкой – в этом случае все директории позволяют сохранять изменения, как и в любой нормальной установке Linux.
В случае Puppy, который запускается в ram, единственным местом куда можно было сохранить файлы надолго был /root, домашняя директория пользователя, и мы предложили маленький набор пакетов которые могли бы быть скачены и установлены в /root.
Впрочем, с выходом версии 1.0.1, /usr стал поддерживать запись, благодаря использованию техники под названием unionfs. Вдруг ворота открылись, и вместе с двумя пакетными менеджерами, PupGet и DotPup, на нас обрушился поток новых пакетов. Многие из пакетов DotPup устанавливались в /root, но это было несущественно – сейчас также пакеты можно устанавливать в /usr.
Затем, в Puppy версии 2.00 мы сделали запись доступной для всего что начинается на "/". То есть, все, первым символом чего был "/" сохранялось и как следствие мы ничего не теряли при перезагрузке или выключении системы.
Поскольку мы имели два разных пакетных менеджера, имела место некоторая путаница. В действительности, существует чёткое различие между ними: PupGet имеет статус 'официально', то есть он использовался в процессе создания live-CD, в то время как DotPups именуется 'не официальным', то есть он используется энтузиастами для создания пакетов для Puppy.
В Puppy версии 2.14 был сделан важный шаг на пути к объединению двух пакетных менеджеров в один, в последствии названный 'PET' формат. Абривеатура 'PET' появилась из слов "Puppy's Extra Treats" или "Puppy's Enhanced Tarballs"(то есть расширение исходников Puppy). PET вобрал в себя все преимущества своих прародителей и не перенял их недостатков.
Puppy Unleashed Дистрибутив Puppy в формате live-CD создан более чем из 500 пакетов и сборочных скриптов, в совокупности называемые Puppy Unleashed. Сборочный скрипт, который на самом деле называется "createpuppy"(создай Puppy), позволит выбрать те пакеты, которые войдут в комплктацию live-CD, а затем создаст ISO образ диска, остаётся лишь записать его на CD.
Официальное название Puppy live-CD это"puppy-2.14-seamonkey.iso", который в настоящее время базируется на возможностях Mozilla Seamonkey. Но так же есть пакет Opera, и более того John Murga собрал другой 50 мегабайтный ISO образ на основе Opera. Каждый из вас может собрать свою собственную, уникальную версию Puppy Live-CD, и многие энтузиасты уже создали свои версии Puppy.
В Unleashed версию включены 'официальные' PET пакеты. Но как насчет всех остальных пакетов, пакетов 'сторонних' производителей, их насчитываеться около 500, тех которые не попали в стартовую комлектацию Live-CD? Они размещены в различных уголках интернета и тут приходит на помощь PETget утилита менеджера пакетов, которая позволит Unleashed версии добавлять эти 'оставшиеся' пакеты.
PETget находится в во вкладке Setup меню Puppy или значок 'Install' (установка) на рабочем столе). Всего лишь запустите PETget и перед вами предстанет список доступных пакетов. Ну вот, теперь намного лучше – представленный вам лист с более чем 500 "остальными"(имеется в виду 'сторонних производителей', то есть не вошедших в комплектацию Live-CD) пакетами. Таким образом, хотя они никогда не были в поставке live-CD, вы можете устанавливать их, ну и конечно же удалять.
Если вы хотите узнать больше о Unleashed, посмотрите основной архив Puppy Unleashed, вы найдёте там очень полезный файл 'README' – в файловых обменниках интернета архив должен иметь имя вроде этого: 'puppy-unleashed-core-2.14.tar.gz'.
Так же вот на этой странице вы найдёте описание Unleashed Puppy. DotPup пакеты DotPup это простая система установки пакетов разработанная GuestToo и подробно описанная здесь. Оригинальный DotPup разрабатывался GuestTo как простая система пакетов, используя которую вы просто скачивали нужный вам '.pup' пакет, а затем устанавливали его в один щелчок мыши. Позже MU разработал утилиту для создания DotPup, которая так же регистрирует DotPup с PETget менеджером при установке, причем PETget можно использовать для её удаления. Краткое предостережение. Многие пакеты DotPup изменяют 'Menu' (найдёте слева снизу рабочего стола) непосредственно, однако в Puppy версии 2.14 перешёл на систему меню XDG, в котором конфигурационный файл оконнго менеджера вообще не изменяем. Вместо этого новый пакет нужно установить в '.desktop' файл. В простых DotPup пакетах, которые не требуют меню, эта проблема отсутствует, но их нужно переводить в PET формат, например с помощью утилиты 'pup2pet'. Или DotPup пакеты могли быть созданы с поддержкой XDG и не напрямую изменяют конфигурационный файл меню, таким образом они полностью совместимы с Puppy 2.14 – по всей видимости MU и остальные будут обновлять утилиты создания пакетов DotPup в соответствии с обновлениями системы.
Slackware пакеты Puppy скомпилирован из исходников и имеет уникальные архитектуры загрузки и остановки системы, отличные от всех остальных дистрибутивов. Тоже самое можно сказать про Slackware – хотя Puppy и не базируется на Slackware. Однако, бинарные пакеты для Slackware могут быть использованные для работы в Puppy. Slackware пакет можно перевести в PET формат с помощью 'tgz2pet' утилиты. Например так: # tgz2pet xgames-0.2-i386-1.tgz выполнение этой команды создаст файл 'xgames-0.2-i386-1.pet'. Запустите этот файл и PETget установит его и даже запустит скрипт установки внутри Slackware пакета. Предупреждение. Slackware имеет отличную от Puppy архитектуру и установочный скрипт может сделать что-то нежелательное для Puppy. В Slackware используются другие разделяемые библиотеки и некоторые необходимые им зависимости могут отсутствовать в Puppy. Однако, если Puppy разработчики обнаружит что Slackware пакет работает в Puppy тогда он может перевести его в пакет PET формата для остальных пользователей. Отметим что 'tgz2pet' скрипт не добавляет какую-либо PET-специфику в процессе конвертирования Slackware пакетов, так что если в пакете нет '.desktop' файла, скрипт не будет создавать его и в Puppy. Дополнительные функции поддержки Slackware пакетов могут быть добавлены в будущем при необходимости. Менеджер пакетов PETget
PETget менеджер пакетов (ранее известный как PupGet менеджер пакетов) выбирается из меню в Puppy (или через "установить значок на рабочем столе). Очень прост в использовании. Первые окна кнопок на выбор, и, как правило, нужно, чтобы "установить или удалить пакетах", то две панели окна поднимается, например:
Менеджер пакетов PETget (ранее известный как PupGet) выбирается в меню 'Setup' (установки) в Puppy, или значок "install" (установка)на рабочем столе. Он очень прост в использовании. В левом окне пакеты доступные для установки представлены в виде списка, в правом уже установленные, вот так это выглядит:
После перемещения необходимого пакета кнопкой 'Add' (добавить) и нажатия на клавишу 'OKAY' вас попросят выбрать сайт с которого можно получить пакет или попросят указать локальный каталог с установочным файлом.
Вы могли заметить что, подводя курсор к названию пакетов, вы видите всплывающую подсказку.
И как же установить 'неофициальные' пакеты? Просто скачайте из интернета и запустите скачанный файл пакета.
Файл менеджер ROX-Filer может работать с файлами формата '.pet' и если вы щёлкните мышкой на иконке пакета запуститься PETget. Некоторые PET пакеты, как официальные так и нет, могут быть установлены так. Кроме того, при использовании браузера SeaMonkey вы можете кликнуть на ссылке на какой-либо".pet" файл на любой веб странице и SeaMonkey предложит скачать пакет или же сразу открыть его в PETget. Последнее предложение означает что достаточно совершить одни клик, находясь в интернете, и пакет будет установлен!
Технические детали PETget Когда PET пакет установлен, PETget сохранит записку о установке(лог). На рисунке файл packages.txt:
То есть, /root/.директория содержит файлы как показано выше. Каждый установленный пакет будет, как правило, иметь один файл здесь. Например Xbubble пакету соответствует файл "xbubble-0.2.4.files". Это используется PETget для удаления пакетов.
Файл "packages.txt" это перечень всех установленных пакетов входящих в поставку версии Unleashed, а "livepackages.txt" это перечень пакетов формата отличного от pup_xxx.sfs (то есть не входящих в live-CD) и кандидатов на установку PETget – именно этото файл читается для представления списка доступных пакетов в PETget (правое окно).
Файл "alienpackages.txt" это перечень пакетов, которые были установлены, но не входят в состав Unleashed сборки.PETget имеет свойство любые произвольные PET пакеты находящиеся на вашем компьютере и если этот пакет не входит в состав Unleashed, то он получает маркировку "alien"(чужой) или "unofficial"(не официальный).
Самый простой способ изучить что находится в этих файлах это открыть и посмотреть, но здесь типичное вступление в "livepackages.txt": "xchat-1.8.11" "xchat-1.8.11: IRC chat client" on "GTK1APPS +gtk+ 520K" \ Первое поле – имя пакета, второе – информация которая появляется в панели PETget, третье поле содержит "on", "off" или "unavailable": "on" означает что пакет установлен, "off" – не установлен. Последнее поле – текст всплывающей подсказки в PETget.
Файлы ".files" всего лишь список установленных файлов. Ниже приведён тест файла "xchat-1.8.11.files": /usr/local/bin/xchat /usr/share/doc/xchat/xchat.html /usr/share/doc/xchat/xchat.sgml /usr/share/doc/xchat/xchat-1.html /usr/share/doc/xchat/xchat-10.html /usr/share/doc/xchat/xchat-2.html /usr/share/doc/xchat/xchat-3.html /usr/share/doc/xchat/xchat-4.html /usr/share/doc/xchat/xchat-5.html /usr/share/doc/xchat/xchat-6.html /usr/share/doc/xchat/xchat-7.html /usr/share/doc/xchat/xchat-8.html /usr/share/doc/xchat/xchat-9.html /usr/local/lib/X11/mini-icons/xchat.xpm /usr/local/lib/X11/mini-icons/xchat_mini.xpm Достаточно просто, обычный список файлов.
Неофициальные PET пакеты Каждый может создать PET пакет. Существуют утилиты которые позволяют делать это максимально просто. После создания пакет может быть выложен в интернете для использования другимим пользователями.
Если пользователь Puppy скачивает неофциальные PET пакеты, как же ему установить их? Или как удалить их?
Инсталяция очень просто, просто запустите '*.pet' файл.
PETget зафиксирует установку в "alienpackages.txt", и список файлов в '*.files'.
Например "Torsmo": "alienpackages.txt": "torsmo-1.0" "torsmo-1.O: system monitor utility" on "XLIBAPPS 56K" \ "torsmo-1.0.files": /usr/local/bin/torsmo /usr/local/lib/X11/mini-icons/torsmo.xpm Еще один момент. A PET может и не иметь скрипта удаления. На пример для Torsmo это был бы файл "torsmo-1.0.remove". PETget Распознает этот файл как скрипт удаления и будет выполнять его для удаления файлов.
Puppy Unleashed содержит более чем 500 пакетов, которые были разработаны для запуска в Puppy. Вы можете выбрать пакеты, которые вы хотите, чтобы создать собственную версию дистрибутива Puppy.
Вот основные шаги:
Шаг 1 На жестком диске Вашего PC должен быть ext2, etx3 или reiserfs раздел, с 1.5 гигабайт свободного места. Если у вас отличные разделы, то используйте программу менеджера разделов, такого как GParted (в Puppy), чтобы их создать. Если Вы собираетесь создать разбиение, я рекомендую, сделать раздел с 1.5 ГБ и более свободного пространства. У жесткого диска должно также быть раздел SWAP Linux, с размером около 500 Mб.
Шаг 2 Загрузите Puppy с компакт-диска (в режиме Live CD). Да, у вас запустится полностью работающий Puppy Linux.
Шаг 3 Зайдите на ibiblio.org сайт загрузки Puppy, и скачайте "puppy-unleashed-core-2.xx.tar.gz" в ext2/ext3/reiserfs раздел по крайней мере с 1.5 GB свободным пространством. Избавьтесь от любого существующего каталога, названного "puppy-unleashed", чтобы избежать конфликта. Распакуйте скаченный файл: # sync # tar -zxf puppy-unleashed-core-2.xx.tar.gz
Шаг 4 После распаковки у вас будет каталог под названием "puppy-unleashed" и в котором вы увидете каталог, названный "packages". Каталог пакетов будет пуст, и Вы должны поместить все файлы из "pet_packages-2" каталога (Puppy 2.14 и позние версии. Загрузите от "pupget_packages-1" каталога для Puppy v2.13. Более ранние не поддерживаются) с ibiblio.org. Вы можете использовать wget или gFTP, чтобы сделать это.
Изображение показанное выше указывает как установить анонимный FTP, используя gFTP. Используйте свой адрес электронной почты для пароля. Щелкните правой кнопкой мыши на правой области окна, чтобы выделить все файлы для загрузки. Одна вещь которую я рекомендую, чтобы вы делали это визуальная проверка загруженного размера с файлами в левой области окна и, что они соответствуют размерам в правой области окна.
Отметьте, если Вы выходите в интернет через модем, то это получается достаточно большой объем данных, таким образом вы можете не загружать некоторые пакеты, если знаете, что вы не будете нуждаться в них. Будьте внимательны насчет этого. Я предполагаю, что есть некоторые пакеты Mozilla, которые вам не нужны, а также пакеты OpenOffice. Пожалуйста скачайте столько сколько сможете - несколько человек задавали вопросы на форуме, загрузив только маленький выбор пакетов, затем заметив, что их Live CD диск не работает!
Шаг 5 Этот каталог пакетов будет полон .tar.gz файлами. Теперь распакуйте их: # sync # cd puppy-unleashed/packages Эта команда нужна для перехода в папку packages # ./expandtarballs.sh
ТОЛЬКО ДЛЯ PUPPY 2.14 +: В ibiblio.org или другом Unleashed репозитории, есть два каталога, "pupget_packages-1" и "pet_packages-2". У прежнего есть старшие пакеты PupGet (у которых расширение файла ".tar.gz"), и у последнего есть более новые PET пакеты (у которых расширение .pet). Загрузите только от "pet_packages-2" каталога, в местный каталог "packages". Теперь cкрипт "expandtarballs.sh" находится в Unleashed packages. Не делайте команду 'cd', которое показано выше, то есть, не переходите в папку "packages", запускайте скрипт из каталога "puppy-unleashed"
Шаг 6 Теперь все готово для сборки собственного дистрибутива Puppy! Используйте Rox, чтобы использовать путь к puppy-unleashed, в часности прочитайте README.txt кликнув на нем. Это все, что Вы должны сделать, чтобы создать Ваш собственный Live CD (и файлы image.gz и usr_cram.fs). Теперь должны выполнить скрипт createpuppy: # ./createpuppy * Компакт-диск, который я собрал ("Live"), который является загрузочным. После загрузки Puppy, запустите программу Drive Mount/unmount в меню "File managers", чтобы смонтировать компакт-диск и просмотреть файлы. Будет видно, что Unleashed файл там и копирует это в вышеупомянутый раздел. Для подробностей относительно компакт-диска, см. страницу разгрузки.
Скрипт createpuppy очень сложен и предлагает много опций. Я рекомендую, чтобы в первый раз на все вопросы был принято значение установленное по умолчанию, то есть, нажимали клавишу ENTER всякий раз при вопросе.
Обновление Unleashed Поскольку Unleashed Puppy разбит на большое количество файлов, "core"(файла ядра) плюс приблизительно 500 пакетов их не сложно скачать на медленной телефонной связи через модем. Но это займет некоторое время! Если Вы не хотите качать, то альтернативный вариант это покупка всего необходимого на компакт-диске, зайдите на Страницу загрузки.
При обновлении Puppy на новую версию, вы должны скачать новый puppy-unleashed-core-x.x.x.tar.gz файл, кроме того должны быть обязательно скачены новые или измененные файлы для папки packages. Обновлять проще, чем скачивать все пакеты снова.
(c) 2005,2006,2007 Barry Kauler www.puppylinux.com
Релиз записи для Puppy Linux версии 3.00 Новый ISO образ live-CD Puppy версии 3.00 в файлообменниках имеет имя типа - 'puppy-3.00-seamonkey.iso' и его размер составляет 95.8MB.
В этот раз я не стал делать подробное описание новой версии, наоборот, всю дополнительную информацию и новости разработки смотрите в моем блоге: http://www.puppylinux.com/news/.
Эта версия Puppy является ни чем иным как массивным обновлением Puppy предыдущей версии(2.17.1). Я решил ориентироваться на сближение с бинарной совместимостью Slackware 12, с ориентировкой на возможность установки Slackware пакетов и все или большинство необходимых зависимостей уже реализованы. Для этого, я использовал все средства сборки(компиляции) пакетов из Slackware 12, такие как glibc 2.5, gcc 4.1.2 и gtk 2.10.13. Большинство библиотек представленных в Puppy 3.00 заимствованы из Slackware. Однако стоит заметить, что это ни в коем случае не вешает на Puppy клеймо клона Slackware – Puppy обладает уникальным фундаментом ОС, исключением может послужить лишь заимствованная из Slackware бинарная совместимость.
Следующий важный момент новой версии это полностью переписанный сценарии загрузки, конфигурирования и выключения системы. Благодаря этому появились возможности переименовывать pup_save файл, устанавливать его в поддиректории, изменять размер и правильно интерпретировать несколько pup_save файлов при загрузке.
Так же есть несколько крупных новшеств, такие, как наконец то полученная возможность периодической очистки RAM со стабилизацией работы Flash – это часть механизма который ограничивает запись на Flash, так что Flash работает нормально.
Список изменений в версии Puppy 3.00 (обобщённо): Все стандартные пакеты обновлены, включены glibc v2.5, gcc v4.1.2, GTK v2.10.13. Обновления приложений (неполный список): pptp v1.7.1, Isomaster v1.1, KP 2.0 (gray), Pbdict (zigbert), pure-ftpd (getnikar), trashcan (disciple), Pbackup (zigbert), Network Wizard (Dougal, tempestuous, BarryK), JWM v2.0.1, Xvesa Wizard (gray, BarryK), Burniso2cd (BarryK), Busybox v1.6.1, TkDVD v4.0.6, various small utilities (gray), Pidgin v2.0.2, SeaMonkey 1.1.2, Xorg v7.2, Unionfs v2.1.2, Pfind v2.4 (zigbert), PDF-printer v0.8 (jcoder24), WakePup2 (john doe), NoteCase v1.6.5, HomeBank v3.5, Universal Installer (BarryK). Массивные улучшения достигнуты вводом новых сценариев загрузки и выключения, включая переименование pup_save, возможность установки в поддиректорию, использование нескольких pup_save файлов при загрузке, изменение размера pup_save. Новое ядро: 2.6.21.7, сконфигурированное с 'tickless' опцией. Initrd.gz теперь cpio архив. NetSurf web browser v1.1 в качестве внутреннего HTML браузера. Правильная очистка(отключение) Flash накопителей (andrei, BarryK). Достигнуто. И конечно же огромное число исправленных багов.
Выше я упомянул некоторых авторов и помощников(по никам на форуме), однако это далеко не полный список. Мой блог разработчиков посещают многие другие разработчики.
Правильная очистка(отключение) Flash накопителей.Если вы установили Puppy на USB Flash накопитель, Puppy запустится в RAM и периодически(каждые 30 минут) будет сохранять изменения в файл 'pup_save'. Эта процедура сохранения продлевает жизнь Flash накопителя (Имеется в ввиду ограниченное число циклов чтения/записи). Сохранения подразумевает copy-down то есть память RAM не очищается – так если у вас компьютер только, скажем, с 128MB RAM, без SWAP, и, скажем, 512MB 'pup_save' файл, вы можете заполнить только свободную RAM, затем при перезагрузке содержимое RAM сливается в 'pup_save'. Размер свободной памяти отображается на панели задач, таким образом вы всегда знаете когда исчерпывается свободная память. Однако в Puppy 3.00 есть кое что новое. PETget - менеджер PET пакетов, теперь устанавливает пакеты прямо в 'pup_save' файл, а не в RAM. То есть теперь вы можете устанавливать большие пакеты и в то же время держать RAM свободной и более того вам не придётся перезагружаться. Остальные системы установки пакетов не имеют этой функции (например менеджеры DotPup пакетов).
Параметры загрузки. Теперь 'init' скрипт корректно обрабатывает параметры загрузки 'psubdir', 'pdev1'. Скрипт загрузки 'init' теперь включает в себя строгую обработку 'psubdir', то есть достаточно установить на vmlinuz, initrd.gz, pup_300.sfs и zdrv_300.sfs в папку, скажем 'puppy300' и он будет признан. Puppy будет автоматически искать на разделах, однако если установить параметр загрузки 'psubdir=puppy300' можно предотвратить поиск где-либо. Я добавил в Universal Installer запрос на установку в папку при ручной установке. Также я модифицировал скрипт выключения rc.shutdown, вот почему когда Puppy загружается из папки, он при первом выключении создает pup_save.2fs file (файл персональной истории) именно в этой папке. Все вышеперечисленное опционально. Вы можете использовать это для того чтобы сузить поиск до желаемого результата. Например загружаясь с usb flash накопителя, используйте 'pmedia=usbflash' для того чтобы Puppy не тратил время на CD и другие приводы (CD особенно медленный). Или, для установки IDE винчестера используйте 'psubdir=puppy300 pmedia=idehd' и Puppy будет работать только с жёстким диском и искать только в папке 'puppy300' – это пригодиться для мульти-установки, в который каждый хочет держаться независимо.
Это хорошая новсть для тех, кто хотел бы иметь несколько Puppy в своём компьютере. Ещё примеры: pmedia=usbflash #choices: usbflash|usbhd|usbcd|ideflash|idehd|idecd|idezip|satacd|satahd|scsihd|scsicd|cd pdev1=hda7 #раздел в котором установлен Puppy. psubdir=pup220 #папка содержащая все Puppy файлы. Даже pup_save.2fs Будет здесь.
initrd.gz теперь cpio архив. Файл 'initrd' больше не имеет файловой системы внутри себя, поэтому не могут быть смонтированы loop устройства. Сейчас это cpio архив, в извлеченном виде должно быть что вроде этого: # gunzip initrd.gz # mkdir puppy-devx # cd puppy-devx # cat ../initrd | cpio -d -i
Обновление с прошлых версий Puppy. Без проблем. Если вы запустите Puppy с live-CD, просто загрузите новый CD и Puppy автоматически произведёт все необходимые обновления file/partition (обычно это файл pup_save.2fs). Для USB или frugal-hd установки, просто скопируйте последние файлы (vmlinuz, initrd.gz, pup_300.sfs and zdrv_300.sfs) на USB Flash накопитель или загрузочную область HD.
Загрузка. Если вы хотите получить последнюю версию live-CD Puppy или "devx" модуль, который превращяет Puppy в полную C/C++ среду компиляции (код), или обновлённую версию ядра 2.6.21.7, пожалуйста посетите страницу закачек Puppy: http://www.puppylinux.com/download/downpage.htm
Отметим что файл 'devx_300.sfs' это то что мы называем SFS модулем, который являеться "комбо паком" приложений в одном файле. Вы можете запустить его во время загрузки и все приложения мгновенно установятся. Или наоборот вы можете удалить все приложения разом. Обычно вы просто скачиваете SFS файл в /mnt/home затем перезапускаете Puppy и он (SFS) автоматически загружается. Отметим: на Puppy Forum замечено что SLAX .mo модули работают с Puppy – просто смените '.mo' разрешение на '.sfs' - нет никаких ограничений!
Немного о ядре: если вы хотите собрать (скомпилировать) модуль или пакет который требует код ядра, у нас есть исходники ядра в формате SFS файла. Скачайте 'devx_300.sfs' и 'kernel-src_300.sfs' в /mnt/home затем перезапустите Puppy и вы в деле (он прост в управлении как SFS файл, но запомните что вы можете управлять SFS файлами так же из Менеджера загрузки (Системное меню)). Официальные SFS файлы: http://distro.ibiblio.org/pub/linux/distributions/puppylinux/sfs_modules-3/
Я перепробовал множество разных дистрибутивов на своем ПК. Все они слишком медленные. Лучше использовать LiveCD. Но Puppy оказался необычайно быстрым (он напомнил мне про BeOS 5PE - уникальная была штука!). Даю слово: в будущем буду использовать только Puppy! *
Puppy загружается с CD очень быстро, примерно 25-30 секунд от загрузчика до X сервера с загруженным оконным менеджером. Основная причина в том, что ISO образ дистрибутива имеет небольшой размер, а загрузочные скрипты очень просты.
Загрузка образа
ISO файл образа дистрибутива это единственное что вам нужно. Запишите файл образа на компакт-диск и перезагрузите компьютер и начните загрузку с этого компакт-диска. Файл образа, который вам нужно скачать, будет иметь название "puppy-x.xx-xxxx.iso", например "puppy-2.10-seamonkey.iso". Загрузить образ: Загрузочная страница Puppy
После того, как файл образа скачен, используйте свою любимую программу для записи CD, чтобы прожечь файл образа на компакт-диск.
ПРЕДУПРЕЖДЕНИЕ ДЛЯ НОВИЧКОВ: Если вы не имеете понятия о том, как записать ISO образ на CD, прочтите документацию к программе для записи дисков. Самая частая ошибка которую совершают новички: они просто записывают "puppy-x.xx-xxxx.iso" на CD как обычный файл. Любая программа, позволяющая записать образ на диск, имеет специальные опции меню для таких целей. Что бы убедиться, что образ успешно записан, откройте компакт-диск в любом файловом менеджере, и убедитесь что на нем имеются файлы "image.gz", "vmlinuz", и т.д. Если вместо них вы обнаружите там файл "puppy-x.xx-xxxx.iso", значит диск записан неправильно и загрузить систему с него не получится! Необходимо понять одну вещь: ISO образ - это содержимое всей файловой системы CD заключенное в единый файл.
PS: Один из наших активных пользователей форума, GuestToo, нашел программу для Windows под названием BurnCDCC. Все что умеет данная программа это прожигать файлы образов на компакт-диски, так что с ней у вас не получится сделать что-то не так. Вы найдете ее по этой ссылке: http://www.terabyteunlimited.com/utilities.html. Если вам уже доводилось пользоваться предыдущими версиями Puppy, то задача упрощается, так как в Puppy содержится достаточно приложений для записи CD и DVD. Например, в версии 2.02 live-CD есть Graveman, очень простая в использовании программа для записи CDR/CDRW дисков, и TkDVD для записи DVD дисков. Версия Puppy 2.10 'standard' live-CD содержит WishCD и TkDVD. Кроме этого, еще множество других приложений доступны для установки в Puppy: Gcombust, Xcdroast. Так же все последние версии Puppy включают небольшую программу (которую мы иногда называем скриптом, поскольку она написана на встроенном языке, без компиляции) под названием Burniso2cd. Я написал ее специально, чтобы упростить процесс записи ISO файлов на CD или DVD. Вы найдете ее в меню "Multimedia".
Как установить Puppy на компьютер
На самом деле нет никакой необходимости устанавливать Puppy. Если вы хотите участвовать в разработке Puppy, но не имеете возможности использовать на своем ПК только Puppy, просто загружайтесь с этого компакт-диска. Когда вы загрузили Puppy с компакт-диска, вся система полностью находится в оперативной памяти. Однако когда вы будете выходить из системы, вам будет предложено создать специальный файл на жестком диске или на USB устройстве, в котором будут храниться все ваши настройки и персональные данные, такие например как адрес вашей электронной почты. Таким образом, при следующей загрузке Puppy, все эти данные будут восстановлены из файла, и вы сможете продолжить работу со всеми своими настройками.
Таким образом, единственное что мы "Устанавливаем" на жесткий диск, это безобидный файл с настройками, который никоим образом не затрагивает уже установленную на компьютере операционную систему, например Windows.
Когда вы захотите использовать более новую версию Puppy, просто скачайте ISO файл, запишиет его на диск и перезагрузитесь. Чтобы обновить Puppy до более свежей версии, более ничего делать не придется, а все ваши предыдущие настройки сохранятся. Таким образом, вы можете использовать Puppy не затрагивая вашу основную операционную систему. Вы можете использовать перезаписываемые CD-RW диски, чтобы сэкономить на "болванках".
Если вы всетаки хотите установить Puppy на жесткий диск, прочитайте сперва остальные разделы руководства, например "Hard-drive" и "USB".
Загрузка ПК с компакт-диска
Почти все компьютеры поддерживают возможность загрузки с компакт-диска CD или DVD. Но для начала возможно придется заглянуть в настройки BIOS. В большинстве случаев, чтобы попасть в меню настроек, достаточно удерживать клавишу "Delete" в первые секунды после включения питания. Но на некоторых машинах для этого используются другие клавиши, такие как F2. В настройках BIOS вам нужно настроить порядок загрузки системы, поставить загрузку с CD перед загрузкой жесткого диска, вы также можете включить там загрузку с USB и флоппи-диска.
Для старых компьютеров, у которых BIOS не поддерживает загрузку с компакт-диска, Puppy можно загрузить с USB устройства. Если и это не поддерживается, то можно использовать специальную загрузочную дискету. В Puppy есть программа, под названием WakePup, разработанное одним из наших энтузиастов -- Ищите в меню "Setup" пункт "WakePup create boot floppy". С помощью него создается дискета, при загрузке с которой, система пытается обнаружить Puppy на компакт-диске, USB устройстве или на жестком диске и далее загрузить Puppy с этого устройства.
Необходимо иметь ввиду, что WakePup основана на DOS и может распознать только файловые системы ISO9660 и FAT. Компакт-диски используют файловую систему ISO9660, здесь никаких проблем не возникает. Устройства USB обычно форматируются с файловой системой FAT16, так что здесь тоже все в порядке. MSDOS и Windows 95/98 так же используют FAT на жестких дисках. WakePup не сможет обнаружить Puppy на разделах жесткого диска, отформатированных в файловой системе NTFS (Windows XP) и разделах, c файловыми системами используемыми в Linux.
Мультисессионный CD/DVD
Обычно при использовании Puppy имеет смысл сохранять свои настройки на жестком диске компьютера, которые хранятся в специальном файле, имеющим название pup_save.3fs. Однако есть альтернативный вариант, который многие пользователи считают самой замечательной возможностью Puppy, отличающей его от других live-cd дистрибутивов. Речь идет о возможности сохранить все свои персональные настройки обратно на CD или DVD. Да, полностью все: электронную почту, загруженые из Интернет файлы, установленные пакета.
Собственная сборка Puppy
После того, как вы записали Puppy на компакт-диск и поработали с ним, вы возможно захотели внести в дистрибутив изменения. Теперь это сделать очень просто. Вы можете полностью пересобрать содержимое оригинального комплекта Puppy.
Загрузив Puppy, зайдите в меню "Setup" и выберите пункт "Remaster Puppy live-CD". Вам будет задано несколько простых вопросов относительно записи нового CD. Естественно для этого ваш компьютер должен иметь пишущий CD-привод.
Возможность пересборки позволяет вам полностью изменить Puppy по своему вкусу. Основная идея этого в том, что бы сохранить на диске c Puppy свои настройки системы и дополнительно загруженные пакеты ПО, а не хранить их в отдельном файле.
Puppy Unleashed
Так же есть возможность собрать Puppy live-CD только с тем набором приложений, которые вы бы хотели иметь (то что называется сборкой "from scratch").
Допустим вам не нравится Seamonkey, веб-браузер, используемый в "стандартной" сборке Puppy? Может вы предпочитаете пользоваться Opera? Или Xvesa X сервер из стандартного набора Puppy не работает на старых ПК и вам нужен Xfbdev X сервер? Или может быть вы хотите уменьшить объем ISO файла? Без проблем. Теперь вы можете выбрать только тот набор приложений, который вы хотите и создать из него свой live-cd. Полный набор приложений собранных для Puppy насчитывает более 350 пакетов и называется Puppy Unleashed.
Пакеты PupGet и DotPup
В Puppy есть две системы установки пакетов, называемые PupGet и DotPup. Посредством этих систем доступно большое число дополнительных пакетов. Самое приятное, это то что вам не придется устанавливать Puppy на жесткий диск или USB устройство. Просто загрузившись с компакт-диска, вы уже имеете возможность установить дополнительные пакеты.
Компиляция приложений в C/C++
Загрузка Puppy с компакт-диска едва ли имеет больше ограничений, по сравнению с системой, установленной на жестком диске.
Из Puppy легко можно сделать систему, для компилирования программ на C/C++. В одном файле с названием devx_xxx.sfs, содержится для этого все необходимое. Буквы "xxx" в названии файла, это номер версии Puppy, например для Puppy 2.10 он будет "210".
Работая с Puppy live-CD, у вас имеется файл ваших персональных настроек pup_save.3fs, на жестком диске вы найдете его в папке /mnt/home. Все что вам потребуется, это загрузить файл devx_xxx.sfs и скопировать его в /mnt/home/. Перезагрузите систему и можете приступать к компиляции, вам будут доступны утилиты 'configure', 'make' и 'make install'.
Единственное что можно посоветовать, это чтобы у вас был раздел на жестком диске отформатированный под Linux swap. Этот раздел Linux использует при недостатке оперативной памяти, поскольку компиляция из исходных кодов забирает много ресурсов.
Замечание по использованию дисковых разделов NTFS в Windows XP. Microsoft не разглашает спецификацию файловой системы NTFS, как и остальные свои форматы и протоколы, поскольку предпочитает использовать их монопольно. По этой причине поддержка NTFS в Linux не совершенна. Поэтому для более полноценного использования Linux, желательно создать разделы на жестком диске, отформатированные под Linux swap и родные файловые системы Linux. Для этого есть специальные средства, позволяющие уменьшить раздел NTFS и использовать освободившееся пространство на жестком диске под файловые системы Linux. Одно из этих средств - программа GParted, которую вы найдете в меню "Control Panel". В последнее время появилось несколько драйверов для Windows NT/XP, дающие возможность использовать файловые системы ext2, наряду с родными для Windows NTFS или VFAT. См. здесь: http://www.fs-driver.org/ Возможно они помогут вам более плодотворно использовать Puppy.
Системные требования: пишущий привод IDE CD/DVD и 256M* RAM, жесткий диск не требуется!
*Если имеется жесткий диск с разделом под swap, можно обойтись меньшим количеством оперативной памяти.
У вас свое интернет-кафе? Теперь представьте, что вам больше не нужно беспокоится о поддержке своего парка компьютеров. Представьте, что вам достаточно старых ПК без жестких дисков и установленных операционных систем. Представьте, что вас не волнуют проблемы вирусов и безопасности... это ли не мечта? Просто раздайте своим клиентам загрузочные компакт-диски с Puppy linux, с настройками DHCP сервера вашего провайдера, достаточно загрузить с них компьютеры и все! Клиенты интернет-кафе могут делать на ПК что угодно, после чего сохранять свои настройки и файлы обратно на DVD или 2х Гб. мини-DVD. А может вы хотели бы использовать свой рабочий компьютер и не оставлять там следов? Загружаетесь и работайте с Puppy live-DVD, на жестком диске не останется никаких следов, все ваши данные сохранятся на компакт-диске и полная приватность вам обеспечена.
Да, можно было бы привести еще много интересных примеров использования мультисессионного загрузочного live-DVD с Puppy linux, но давайте для начала обрисуем его основную концепцию.
Это первый в своем роде live-CD linux (можно сказать что второй, так как один из участников проекта Morphix сообщил, что они уже разработали нечто подобное. Однако система мультисессионного сохранения в Puppy более совершенна и практична, так что Puppy в этом смысле первый).
В последнее время загрузочные live-CD дистрибутивы становятся все более популярны, но ни один из них не имеет возможности сохранить данные и настройки обратно на загрузочный диск. Большинство этих дистрибутивов имеют большой размер, по 500-700 Мб, так что на компакт-диске просто не остается места для сохранения дополнительных данных. Puppy имеет размер всего 50-90 Мб, так что на диске остается еще порядка 600 мегабайт свободного пространства, так почему бы его не использовать?
А если взять DVD, то мы имеем более 4 гигабайт на простом однослойном диске. В действительности DVD имеет еще одно преимущество: каждая сохраненная сессия на CD отнимает дополнительно к вашим сохраненным данным порядка 12 Мб, в то время как мультисессионная запись на DVD организована более рационально. Так что далее мы будем говорить о DVD дисках, хотя вы можете пользоваться CD, в остальном между ними нет никакой разницы.
Начать использование мультисессионного live-DVD с Puppy очень просто. Никаких сложностей возникнуть не должно. После того, как вы скачали файл ISO образа дистрибутива, главное правильно записать его на диск, как это сделать смотрите в конце этой страницы.
Итак, как это работает? Все что нужно - просто загрузить компьютер с DVD-диска с предварительно записанным на нем дистрибутивом Puppy. Пишущий DVD привод будет автоматически распознан, если в вашей системе более одного CD привода. После чего можно работать в системе как обычно.
Когда вы в первый раз выходите из системы, вам будет предложено сохранить сессию обратно на DVD с которого вы загружали компьютер. После утвердительного ответа, все измененные и вновь созданные файлы в вашей домашней директории будут сохранены на диск. И это все! При следующей загрузке сохраненная сессия с вашими файлами считывается с диска, система целиком загружается в оперативную память (в т.н. ramdisk - файловую систему, организуемую в оперативной памяти) и CD привод освобождается.
Все просто, однако есть один момент. Каждая сессия сохраняется на диск как "дорожка" ("track") (за исключением записи на DVD+/-RW в режиме "overwrite"), так что эффективнее сохранять только те файлы, которые подвергались изменению. В процессе загрузки, сессии с диска считываются в обратном порядке начиная с самой последней, так что в оперативную память загружается самые свежие версии измененных файлов. Puppy грузится в оперативную память целиком, в процессе работы диск более не нужен и CD привод можно использовать для других целей. Когда вы будете выходить из Puppy, вам будет предложено вставить диск обратно в привод для сохранения изменений.
Итак, если в процессе загрузки, сессии с диска считываются в обратном порядке и загружаются последние версии файлов вашей домашней директории, как же насчет удаленных файлов? Скажем вы удалили некоторые более не нужные файлы из своей домашней директории, которые в предыдущем сеансе работы были соранены на диск. Будут ли они заргужены в следующем сеансе работы? Нет. В Puppy реализован механизм отслеживания удаленных файлов, так что такой ситуации не произойдет. Данный подход интересен еще вот чем: удаленные файлы никуда не исчезли, они все еще хранятся на компакт-диске в одной из сессий, так что ни один из когда-либо сохраненных файлов не пропадает, что дает вам возможность восстановить их в случае необходимости.
Конечно DVD диски не безразмерны, и наступит момент, когда свободного места уже недостаточно. Что же тогда? Никаких проблем! Puppy автоматически предложит вам вставить новый чистый диск, запишет на него полностью работоспособную загрузочную систему, сохранит на диске перую сессию и можете продолжать работать с диском как обычно. Нужно отметить, что "первая сессия" будет содержать все файлы из последнего сеанса работы в системе, так что на новом диске будут сохранены все ваши персональные данные.
Далее небольшой список вопросов и ответов...
Как мне обновить свою версию Puppy?
Когда вам предлагается сохранить сессию на DVD, вы обычно вставляете тот диск, которым пользовались до этого момента. Однако если вы предварительно скачали и записали на диск новую версию Puppy, вставляйте в привод этот новый диск, записывайте на него и вы получите новую версию Puppy со своими сохраненными файлами.
Как насчет бэкапа?
На самом деле Puppy работает даже умнее. Если вы используете для сохранения чистый DVD диск, вместе с сессией Puppy запишет на него полностью работоспособную систему, что может оказаться очень полезным, если диск вдруг станет плохо читаемым.
Так же в Puppy реализована система "откатов". В строке приглашения загрузчика можно задать параметр "puppy pfix=n", где "n" это количество последних сессий, которые нужно проигнорировать при загрузке. Эти сессии специальным образом помечаются и более не будут загружаться. Очень полезная функция если с системой стало происходить что-то не то. Можно таким же образом пометить любую сессию из сохраненных на диске.
Если система целиком загружается в ramdisk, оперативной памяти остается не так уж много!
Все верно. Поэтому рекомендуется использовать ПК с минимум 256 мб оперативной памяти. Если на жестком диске есть раздел, отформатированный под linux swap, он может быть использован. Таким образом эффективный размер используемого Puppy пространства составит 1/2 размера оперативной памяти + размер swap-раздела на жестком диске. К примеру на компьютере имеется 128 мб опреативной памяти и раздел swap на 400 мб, таким образом эффективный размер ramdisk`а составит примерно 60+400 = 460 мб.
Если же на данном ПК нет swap-раздела, то 128 мб оперативной памяти будет недостаточно! Для ПК с 256 мб оперативки без swap, ramdisk будет иметь размер примерно 120 мб. Примерно 70 мб займут файлы Puppy, в основном файл pup_xxx.fs, останется около 50 мб - совсем немного!
Если ramdisk полностью заполнен, что тогда?
В конце сеанса работы Puppy попытается заархивировать файлы на DVD так, что бы они не были считаны в ramdisk при следующей перезагрузке. Для этого имеется специальная директория /archive/, все что попадает туда, будет сохранено на компакт-диск, но при загрузке не попадет в оперативную память. Есть также специальные директории названия которых начинаются с "tmp", например "tmp1", "tmp-z" и т.д. Это директории для временных файлов, которые создаются в процессе работы, содержимое этих директорий так же не сохраняется на DVD. Так же, когда Puppy загружает файлы сохраненных сессий в ramdisk начиная с последней и свободная оперативная память заканчивается, загрузка сохраненных файлов прекратится. То, что загружается в оперативную память это файлы которые были ранее изменены, не обязательно те, что создали лично вы.
Если на DVD хранится все, что было сохранено в предыдущих сессиях, можно ли получить доступ к этим файлам?
На компак-диске сохраняется три категории файлов, которые не считываются при загрузке в ramdisk. Это удаленные файлы, файлы из директории /archive/ и старые файлы не поместившиеся в ramdisk из-за его перезаполнения. Однако они остаются вам полностью доступны и это одна из самых замечательных особенностей Puppy! Вы можете использовать мультисессионные диски с Puppy годами и иметь их целую коллекцию. Можно помечать их начальной и конечной датой использования и ваша коллекция будет удобно организована. Все, что вы когда либо делали не пропало, любой из дисков можно загрузить и у вас всегда есть возможность "отката" назад, к предыдущей работе, поскольку все сохраненные на дисках файлы полностью доступны! Можно также каталогизировать заполненные диски с помощью утилиты Gtkcat, так чтобы иметь базу данных по всей когда либо проделанной в Puppy работе.
Я скачал много музыкальных файлов. Как можно избежать перезаполнения оперативной памяти?
Лучше всего сохранить их на жестком диске. При выходе из системы содержимое директории /archive/ будет сохранено на DVD и при следующей загрузке не попадет в оперативную память и не приведет ramdisk к перезаполнению, но файлы будут доступны для использования с DVD диска.
Если вы как и я любите скачивать файлы из сети, заведите привычку сохранять их в директории /archive/.
Другой способ сохранить пространство в памяти, это удалять файлы большого размера, которые были сохранены в предыдущих сессиях и останутся доступными.
Как создать раздел с linux swap?
Если вы ранее устанавливали на жесткий диск linux, вероятно такой раздел у вас уже есть. Но если нет, создать его достаточно просто. Запустите Scandisk под Windows с опцией "проверять и восстанавливать поврежденные сектора". После этого запустите утилиту дефрагментации диска. Выйдите из Windows правильно (это важно!), загрузите Puppy. В меню "Control Panel" выберите "GParted partition manager" - это простая графическая утилита для разметки и разбиения жесткого диска, позволяющая работать с разделами NTFS, с помощью которой доступное место на NTFS разделе можно разметить под linux swap.
Есть ли ошибки в мультисессионном Puppy?
Есть проблема с ограниченым размером ramdisk`а. Очевидно, что файлы с компакт-диска, которые не поместились в оперативную память при загрузке, не станут доступными сразу же. Приводит ли это к сбоям в работе приложений? Это еще предстоит выяснить. В системе организации базы данных основанной на индексировании файлов, если некоторые файлы из индексного списка пропадают, это может притвести к сбоям.
При загрузке и выходе из системы на мультисессионном CD, будут выдаваться сообщения об ошибках. Похоже что это связано с ide драйвером для CD привода под Линуксом, в котором есть проблема с мульисессионным CD. Несмотря на сообщения об ошибках, все работает. У мултисессионного DVD эти сообщения не выдаются.
Похоже что мультисессионный CD менее надежен при сохранении сессий чем DVD. Для записи CD используется утилита cdrecord, а для DVD утилита growisofs.
Можно ли загружать обычный live-CD и мультисессионный live-CD на одном компьютере?
Да. Мультисессионный CD/DVD при загрузке сначала ищет сохраненные сессии на компакт-диске и если есть загружает их. Обычный live-CD не содержит директорий с сохраненными файлами на CD, поэтому система будет искать файл pup_save.3fs на жестком диске, если его там нет, то на USB устройстве.
Какие типы CD или DVD дисков лучше использовать?
Если на вашем компьютере нет пишущего DVD привода, то лучше использовать диски CD-R. Я не хочу рекомендовать CD-RW, поскольку в их использовании нет необходимости. CD-R диски позволяют заполнить диск только один раз, без возможности стирания, но в мультисессионном режиме можно записать одну за одной до 99 мультисессий, до полного заполнения диска. Сейчас эти диски вполне доступны по цене.
Мультисессионный Puppy лучше работает с дисками DVD-R, так что если у вас еще нет пишущего DVD привода, возможно есть смысл задуматься о покупке. DVD-R диски в наше время так же достаточно недороги.
Я настоятельно рекомендую использовать однослойные DVD-R. Не стоит пользоваться DVD+R, DVD-RW или DVD+RW, так как с такими дисками возможны проблемы. Так же не стоит использовать двухслойные DVD-R. Емкость однослойного диска составляет порядка 4.3 Гб, но по причине програмных ограничений более 4 Гб записать не удается, так что двуслойный диск будет пустой тратой денег.
Так же имейте ввиду, что DVD-R диски позволяют делать примерно 2000 сессий, в то время как DVD+R только 150. Еще один довод в пользу DVD-R.
DVD+RW диски можно использовать, но с ними еще есть некоторые нерешенные вопросы, следите за новостями. Если хотите поэкспериментировать, можете пробовать, но для обычной работы лучше все-таки использовать DVD-R.
Будут ли доступны файлы на live-DVD диске из Windows?
Да, без проблем. Файлы сохраняются на диск как обычно, не сжатыми и не зашифрованными. Если вы откроете такой диск в Windows, вы увидите множество папок, с названиями по дате их сохранения, например "2007-03-06-17-45", формат имени папки: "год-месяц-день-час-минута". Каждая папка - это отдельная сессия на диске. То же самое вы увидите, если смонтируете этот диск под Линукс. Каждая папка содержит файлы, сохраненные за один сеанс работы в Puppy. Удаленные файлы сохраняются в виде ссылок на их сохраненную копию в предыдущей сессии, где он физически хранится.
Есть сообщения, что Windows видит только первую сохраненную сессию на DVD+RW, но с DVD-R дисками такой проблемы не обнаружено.
ДОБАВЛЕНО: Я изменил скрипт управляющий выходом из системы, отключив в нем расширение Joilet. Это связано с ее ненадежностью приводящей иногда к невозможности сохранения сессии. Обратная сторона этого в том, теперь названия директорий на диске в Windows показаны в старом формате DOS 8.3 - все имена файлов и директорий обрезаны до восьми знаков. Под Линуксом они видны по прежнему.
Что будет если вдруг выключится питание компьютера во время работы?
Да, такая проблема есть. Текущий сеанс работы проходит в оперативной памяти и сохраняется на компакт-диск только по завершению работы в системе, так что сбой в питании означает потерянную работу. Есть несколько способов предохранения от такой ситуации. Во-первых вы можете сохранять все свои файлы на разделе жесткого диска, а так же настроить приложения (например редактор текста) на автосохранение копии на жестком диске и монтировать разделы жесткого диска каждый раз при загрузке Puppy.
Во-вторых можно делать сохранение на DVD без выхода из системы. На рабочем столе Puppy вы можете видеть иконку "Save", нажимайте и сохраняйтесь не перезапуская Puppy.
Так же вы можете отказаться от сохранения сессии в конце работы, это съэкономит вам место на диске.
Как изменить системные настройки на мультисессионном live-DVD?
В начале этой страницы я упомянул, что вы можете настроить Puppy на автоматическое соединение с DHCP сервером провайдера, поскольку по умолчанию Puppy не устанавливает сетевого соединения при загрузке. Для этого нужно загрузить один из мастеров настройки сети. Вы можете различным способом вносить изменения в конфигурационные файлы системы после чего создать ISO образ с настроенным Puppy. Самый простой способ для этого - использовать опцию "Remaster Puppy live-CD" из меню "Setup".
Где можно скачать файл образа Puppy?
Зайдите на страницу загрузки и скачайте ISO файл с именем в формате "puppy-x.xx-xxxxx.iso", где x.xx это номер версии. После чего прожгите образ на DVD диск.
Прожиг образа на DVD
Если вы уже работаете в Puppy, правильно прожечь файл образа на диск не составит труда. Выберите в меню "Start -> Multimedia -> Burniso2cd burn iso file to CD/DVD". Дополнительных инструкций не потребуется, там все очень просто.
Burniso2cd в Puppy использует для записи утилиту growisofs, так же как и программы Graveman и TkDVD, два приложения для записи дисков из стандартного набора Puppy. Вы можете использовать growisofs из любого дистрибутива Линукс с опциями: # growisofs -speed=4 -Z /dev/hdc=puppy-x.xx-xxxxxxx.iso
где /dev/hdc название DVD привода в вашей системе.
Существуют так же приложения под Windows, позволяющие записать образ на диск. Для этих целей можно использовать например популярный Nero.
Прожиг образа на CD
Запись ISO образа на CD отличается от записи его на DVD! Для этой цели существуют другие приложения и утилиты.
В Puppy вы опять таки можете воспользоваться Burniso2cd.
Используя другие приложения как под Линукс так и под Windows удостоверьтесь, что выбрана опция "мультисессионный диск", не все Windows приложения позволяют записать такие диски. Если это ваш случай, можно поступить следующим образом: запишите образ как обычный не мультисессионный live-cd, загрузите Puppy и используйте Burniso2cd или другую доступную Линукс-утилиту.
Для пользователей Windows:
На Wiki сайте Puppy есть HOWTO документ, описывающий процесс записи мультисессионного диска с использованием Nero6
Имейте ввиду, что утилита Gcombust не входит в стандартный live-CD, это отдельный PupGet пакет. Gcombust используется для записи дисков с scsi-эмулируемыми IDE CD приводами, которые Puppy более не поддерживает. Не используйте Gcombust для записи DVD. Утилита Gcombust немного неудобна но тем не менее все еще популярна.
Процедура с использованием Gcombust такова:
Запустите "CD/DVD drive Wizard" (меню Setup) чтобы выбрать ваш пишущий привод. Загрузите live-CD ISO файл. Запустите Gcombust. (i) Прочитайте появившееся окошко со справочной информацией, (ii) Идите во вкладку "Burn", жмите "Choose image location" чтобы выбрать ваш ISO файл, (iii) Снимите флажок "Dummy test run", оставьте "Pad" отмеченным, (iv) отметьте "Multi session" и "Use data" в разделе Multisession. (v) Введите правильные значения "Device:" и "Driver:" (например: /dev/hdd и mmc_cdr). (vi) если нужно очистить перезаписываемый CD-RW, выберите "All" и нажмите кнопку "Blank CD". (vii) Когда все готово, нажмите кнопку "Burn".
(c) Copyright 2005,2006 Barry Kauler http://www.puppyos.com/ No part of this page is to be reproduced anywhere else. I have found that there is a problem where parts of my web pages are being inserted at other sites, then not updated, whereas I am updating my pages regularly. This is not a desirable situation, so please just link to my pages.
Просто хочу сказать, что я перепробовал уже наверное с десяток разных дистро, включая ХХХ, YYY, ZZZ (который запорол мой Windows раздел). А тут я в пять минут ставлю Puppy на флэш, загружаюсь и... черт возьми! Не считая небольшой временной проблемы с отключенным звуком, ВСЕ РАБОТАЕТ!!!
Этот документ относится к любому устройству для хранения данных с USB интерфейсом и возможностью загрузки компьютера с него. К их числу относятся USB flash диски, устройства USB-Zip, жесткие диски с USB интерфейсом, Compact Flash карты и т.п. Далее для простоты мы будем называть все эти типы устройств как USB флэш диски или просто флэш, а Puppy установленный на USB устройстве, как просто flash-Puppy.
В первый раз устанавливая Puppy на флэш я пользовался USB Compact Flash картой, подключенной через карт-ридер, поскольку меня очень привлекала идея иметь целую операционую систему со всеми моими файлами, данными и настройками на таком компактном устройстве, которое можно всегда иметь с собой в кармане или бумажнике. Теоретически его можно было бы использовать для загрузки любого компьютера с USB интерфейсом.
Потом я переключился на USB флэш, которые сейчас очень популярны и все более доступны по цене.
Первое, очень простое, но необходимое действие для начала работы, это установить в настройках BIOS вашего компьютера загрузку с USB устройства. На разных материнских платах этот пункт может называться по-разному: "USB ZIP", "USB flash" или что-то в этом роде.
Предупреждение: Некоторые флэш диски не поддерживают загрузочных функций, а некоторые (как правило старые) BIOS не имеют опции загрузки с USB устройств. Хотя на современных материнских платах такая проблема встречается редко, все же будьте внимательны при покупке.
Современные флэш диски имеют так называемый "standard USB mass storage interface" или как он называется в Windows, "контроллер универсальной последовательной шины USB". Такое устройство будет работать на любом компьютере с Windows или Линукс без необходимости дополнительно устанавливать специальные драйверы. Многие камеры и mp3 плейеры поддерживают такой интерфейс, так что даже на них можно установить Puppy! Однако имеется множество USB устройств, цифровых камер и mp3 плейеров без поддержки стандартного интерфейса. Такие устройства не будут работать под Линукс без специального драйвера, так что будьте внимательны при выборе устройства для себя.
Будет полезно почитать на форуме про опыт других пользователей, загляните также на Wiki, информация по этой теме там периодически обновляется.
Где достать дистрибутив и как его установить на флэш.
Зайдите на страницу загрузки и скачайте файл-образ дистрибутива live-Pupp. Файл будет иметь названи, вроде puppy-xxxx.iso, где "хххх" это версия Puppy. Далее вам нужно прожеч образ на компакт-диск и загрузить компьютер с этого диска. О том как это сделать см. сответствующую страницу. Загрузив Puppy, зайдите в меню "Setup", выберите "Puppy Universal Installer" и следуйте простым инструкциям.
Все просто, но имейте ввиду, что вам нужен компьютер с пишущим CD приводом и возможность записи ISO образа, чтобы прожечь файл образа дистрибутива на компакт-диск.
Как обновить Puppy на флэш.
Для этого так же используется Puppy Universal Installer, так что никаких трудностей тут нет. Однако вы можете сделать это и вручную. Заглянув на USB устройство с установленным Puppy, вы обнаружите, что там не так уж много файлов. Самые важные из них, это initrd.gz, vmlinuz и pup_xxx.sfs:
vmlinuz
Ядро операционной системы Линукс. При загрузке компьютера оно считывается в память в первую очередь.
initrd.gz
Это файл для организации файловой системы в оперативной памяти, так называемый ramdisk. Расширение ".gz" говорит о том, что это сжатый файл. В разархивированном состоянии он представляет оперционую систему в памяти, управляющую всей системой целиком. Загружается сразу же после ядра.
pup_xxx.sfs В этом файле содержатся собственно файлы Puppy. Как всегда "xxx" это номер версии, например Puppy 2.10 будет "210". Это самый большой файл, обычно 50-65 Мб, сжатый в формате Squashfs. Обычно также загружается целиком в память и управляется посредством ramdisk.
Для обновления Puppy, все что вам требуется это заменить данные три файла. Можно сделать это вручную или через Puppy Universal Installer. С помощью ISO buster можно извлечь эти три файла из ISO файла образа Puppy более свежей версии и скопировать их на флэш, заменив старые файлы. Только имейте ввиду, что не стоит это делать находясь в Puppy, загруженным с того флэш, файлы на котором вы собираетесь заменить, так как файл pup_xxx.sfs в этот момент может использоваться. На самом деле это зависит от количества оперативной памяти на компьютере, если установлено 256 Мб или более, скорее всего все файлы поместились в памяти и вы можете безопасно заменять файлы на флэш. При наличии менее 256 Мб оперативной памяти, Puppy может использовать файлы на флэш и их перезапись небезопасна.
Так что загружайте Puppy с диска или другого устройства, запускайте ISO Master, извлекайте три нужных вам файла, примонтируйте флэш диск с помощью MUT или Pmount и скопируйте файлы на флэш. Не забудьте отмонтировать устройство. При следующей загрузке у вас будет обновленная версия Puppy.
Как вручную установить Puppy на USB устройство самый первый раз.
Выше было описано, как произвести обновление Puppy вручную, однако для начала нужно иметь установленную на флэш систему, так что сначала потребутеся сделать кое что еще.
На данный момент я не описываю как вручную произвести установку Puppy на USB устройство, поскольку настоятельно рекомендую создать загрузочный комакт-диск с Puppy. Этот путь самый простой. Если на вашем компьютере нет пишущего CD привода, озаботьтесь поиском возможности прожечь файл образа на компакт-диск. Инструкции по теме прожига образа на CD вы найдете на соответсвующей странице.
После того, как вы приготовили компакт-диск с Puppy и загрузили систему с него, вы найдете достаточно различных итилит, дающих возможность установить Puppy на различные устройства. Так же в Puppy есть неплохие приложения для записи CD/DVD дисков.
Как загрузить компьютер с USB устройства.
Больщинство современных компьютеров имеют поддержку загрузки с USB устройств. Достаточно установить нужную опцию в BIOS материнской платы. В большинстве систем, чтобы попасть в меню настроек BIOS, достаточно после включения питания компьютера удерживать нажатой клавишу Del или F2 (как правило, однако на некоторых компьютерах может использоваться другая клавиша, см. руководство к материнской плате вашего ПК а так же сообщения на экране, появляющиеся сразу же после включения питания). В меню настроек BIOS вам нужно выставить порядок загрузки компьютера ("boot oder" или "boot sequence"). Если вы хотите иметь возможность загрузки компьютера с компакт-диска и USB устройства, установите загрузку с жесткого диска ПОСЛЕ этих устройств в очередности загрузки. Очередность загрузки устанавливает порядок, в котором BIOS будет искать загрузочные файлы на различных устройствах, если на одном из устройств их не обнаруживается, BIOS пытается загрузить ПК со следующего в очереди устройства и т.д.
В меню настроек BIOS вы возможно обнаружите выбор нескольких типов USB устройств, таких как "USB ZIP", "USB FLOPPY" и "USB HDD". Загрузка с Флэш диска как правило работает с опцией "USB ZIP", но на кетороых мат.платах может потребоваться опция "USB HDD".
Если у вас старый компьютер без поддержки загрузки с USB устройства или ваше устройство не обнаруживается в процессе загрузки (что иногда случается), есть решение. Это решение так же работает если у вас нет возможности загрузки с CD диска. Решение состоит в том, чтобы использовать специальную загрузочную дискету. В Puppy есть специальная уилита WakePup, позволяющая создать такую дискету, см. в меню "Setup" пункт "WakePup create boot floppy". При загрузке с такой дискеты, система будет искать файлы Puppy на USB устройстве, жестком диске, CD/DVD диске и далее загружать систему с этого устройства.
Имейте ввиду, что дискета созданная WakePup, основана на DOS, поэтому она может распознать только файловые системы ISO9660 и FAT. Компакт-диски используют ISO9660, так что проблемы не возникнет. Устройства USB как правило форматируются в FAT16, так что и тут все в порядке. То же и с разделами жесткого диска для Windows 95/98/2000, которые используют FAT32. Но у вас не получится загрузить Puppy с раздела отформатированого для Windows XP, которая использует файловую систему NTFS, а так же с раздела отформатированного под любую файловую систему Линукс (ext2, ext3, raiserfs и т.д.)
(c) Copyright (c) Barry Kauler, 2006. All rights reserved. HOME: http://www.puppylinux.com/ No part of this page is to be reproduced anywhere else. I have found that there is a problem where parts of my web pages are being inserted at other sites, then not updated, whereas I am updating my pages regularly. This is not a desirable situation, so please just link to my pages.
C развитием дистрибутива, установка на жесткий диск становилась все проще и проще. Я написал программу Puppy Universal Installer (универсальный инсталлятор Puppy), который устанавливает Puppy на множество различных носителей, включая жесткий диск. В частности, установка puppy на USB флешь носитель, Sata или IDE жесткий диск или на CF (Compact Flash) карту. Универсальный Инсталлятор очень прост в обращении - следуйте этой инструкции.
У Вас должен быть загружен Puppy в режиме Live CD, чтобы использовать Универсальный Инсталлятор. Универсальный инсталлятор находится в меню Setup
Что Вы должны знать прежде, чем установить на жесткий диск Puppy?
Вы должны обратить внимание на тип файловой системы находящийся на вашем жестком диске. Кроме того, Универсальный Инсталлятор поддерживает два типа инсталляции на жеский диск: Тип 1: Также известная как "frugal install"(Минимальная установка). Файлы vmlinuz, initrd.gz, pup_xxx.sfs и zdrv_xxx.sfs будут скопированы в указанный вами логический диск. На этом разделе может быть установлено что-либо другое, установщик не затронет их. Этот логический диск может быть с любой файловой системой MS-DOS, Windows (FAT, NTFS) или Linux (EXT2, EXT3 или REISERFS). Для большинства людей эта рекомендуемая опция установки. Тип 2: Полная установка. Эта инсталляция требует, чтобы у раздела была файловая система Linux (EXT2, EXT3 или REISERFS).
Другими словами вам нужно скачать образ диска Puppy (live CD), который называется к примеру "puppy-2.16-seamonkey-fulldrivers.iso, записать его на CD, затем перезагрузить компьютер. У Вас должен запуститься Puppy Linux с диска, затем заходите в меню "Setup", и выберите на "Puppy Universal Installer".
Активный разработчик Puppy Dougal (его ник в форуме) недавно улучшил Универсальный Инсталлятор (2.16 +). Одна из новых фишек это обнаружение уже установленного загрузчика Grub и автоматически прописывает в него вход для инсталляции Puppy. А если Grub не установлен, то Универсальный Установщик его автоматически создаст.
Некоторым людям удобнее делать минимальную установку Puppy вручную тк это очень просто. Выбираете раздел, затем скопируйте файлы 'vmlinz', 'initrd.gz', 'pup_xxx.sfs' и 'zdrv_xxx.sfs' с компакт-диска в нужный раздел. Обычно нужно помещать файлы в '/' каталог в разделе жесткого диска, но для версий после 2.16 есть поддержка установки в подкаталог. Примечание: Если Вы делаете это из Windows, и заметите, что названия файлов на компакт-диске имеют символы верхнего регистра, поэтому после копирования их в раздел жесткого диска, пожалуйста переименуйте их к строчным буквам(малыми буквами).
Отметьте, копирование вручную файлы на жесткий диск состоит также в том, что Вы можете сделать мгновенное обновление версии дистрибутива. Только замените старые файлы на новые и все.
Если Вы делаете ручную минимальную установку, Вы должны подумать о том как заставить Puppy загружаться. Некоторые примечания относительно этого следуют далее...
WakePup, чтобы загрузиться от дискеты
Большинство PC поддерживают загрузку с гибких дискет. Если загрузка не происходит, то нужно войти в БИОС и поставить первоочередную загрузку с дисковода. В биос можно зайти нажимая клавишу DEL при загрузке, но некоторые PC требуют нажатие клавиши F2. Тогда, что называют "загрузочная очередь" можете установить, и Вы должны установить с какого устройства пойдет проверка наличия ОС(гибкого диска, CD, USB, жесткий диск).
У Puppy есть кое-что, что интересное, называется программа WakePup, разработанные энтузиастом Puppy pakt (ник на форуме). Зайдите в меню "Setup" далее "WakePup. Программа создает загрузочную дискету, с помощью которого может загрузиться Ваш PC. Гибкий диск WakePup просматривает ваш PC в поисках Puppy на USB, жестком диске, или диске CD/DVD.
Отметьте, поскольку эта система написана под DOS систему, WakePup может распознать файловые системы FAT и ISO9660. Компакт-диски используют файловую систему ISO9660. Флешь USB обычно отформатированы файловой системой FAT16. MS-DOS и Windows 95/98 находятся в разделе жесткого диска с файловыми системами FAT. Все эти системы нам годятся.
Таким образом, WakePup не будет видеть Puppy, установленного в файловой системе NTFS (Windows XP).
Конфигурирование GRUB или LILO
Универсальный Инсталлятор использует GRUB загрузчик, и он превосходит LILO (личное мнение!). Если Вы делаете ручную минимальную установку Puppy в раздел жесткого диска, есть простой способ добавить другой вход меню в GRUB, если у Вас уже есть установленный GRUB загрузчик. GRUB устанавливается раздел на Вашем жестком диске, обычно в каталог /boot. Наиболее вероятно в каталоге /boot/grub Вы найдете файл названным 'menu.lst' - откройте его редактором текста и добавте новый вход.
Допустим, что Вы делали минимальную установку в раздел 'hda6', и у Вас есть файлы Puppy в '/'. Тогда дополнительный вход в menu.lst как это должен содержать это: title Puppy Linux 2.16 rootnoverify (hd0,5) kernel (hd0,5)/vmlinuz root=/dev/ram0 pmedia=idehd initrd (hd0,5)/initrd.gz
Или это: title Puppy Linux 2.16 rootnoverify (hd0,5) kernel /vmlinuz root=/dev/ram0 pmedia=idehd initrd /initrd.gz
Отметьте, 'pmedia' параметр - полезная штука, которая помогает Puppy определять тип загрузочных носителей и их правильно настраивать, чтобы грузиться с этого носителя. Этот параметр может быть любым из этих: usbflash usbhd usbcd ideflash idehd idecd idezip satahd scsihd scsicd
Примечание, если Вы оставите параметр 'pmedia', то Puppy сделает сам выбор и вероятно этот выбор будет правильным. Дополнительное примечание: также, загружаясь с live-CD/DVD, то достаточно параметра 'pmedia=cd', поскольку Puppy загрузка с CD/DVD является интегрированной средой разработки.
Если Вы сделали полную установку в логический диск hda6, то вам нужно прописать это: title Puppy Linux full-install (on /dev/hda6) root (hd0,5) kernel /boot/vmlinuz root=/dev/hda6 ro vga=normal
Компилирование в C/C ++
У Puppy есть очень простая система для того, чтобы преобразовать пакеты в среду компилятора, в которой Вы можете выполнить обычные команды "configure", "make", и "make install" на загруженном исходном пакете. Это очень просто сделать в Puppy загруженного с диска. Все что вам нужно это файл devx_xxx.sfs, где 'xxx" это версия Puppy. Например версия puppy 2.16 нужен файл под названием "devx_216.sfs".
Если Вы у вас минимальная установка, это также удобно использовать файл SFS. Как только Вы создали "pup_save" файл (файл, хранящий Ваши анкетные данные, которые Вы делаете на первом завершении работы), тогда этот файл вы найдете в каталоге '/mnt/home'. Скопируйте файл 'devx_xxx.sfs' в /mnt/home, запустите "SFS Boot Manager", чтобы выбрать, какие файлы SFS Вы хотите загрузить в автозапуск, затем перезагрузитесь. Отметьте, SFS Boot Manager находится в меню "System".
Внимание! При полной установки дистрибутива на жесткий диск (Опция 2) установить файл "devx" чуть сложнее, и все изменения сделанные вами вы уже не можете отменить. Следуйте этим этапам: 1. Монтируем логический диск, на котором установлен Puppy (допустим в /mnt/hda2). 2. Копируем devx_2xx.sfs в /mnt/hda2/tmp. 3. # cd /mnt/hda2/tmp 4. # losetup /dev/loop2 devx_2xx.sfs 5. # mkdir mntpt 5. # mount -t squashfs /dev/loop2 mntpt 6. # cp -a --remove-destination mntpt/* /mnt/hda2/ 7. # sync 8. # umount mntpt 9. # rmdir mntpt 10 # cd / 11 # umount /mnt/hda2
Последнее обновление: Feb 17, 2007, for Puppy v2.14+ only
PET (Puppy's Extra Treats)(дополнительное расширение в Puppy) это уникальная система управления пакетами встраиваемая и используемая Puppy начиная с версии 2.14.
Если вы скомпилировали приложение из исходников или скачали уже скомпилированную версию, затем протестировали приложение в Puppy и теперь хотите сделать его доступным для остальных пользователей... Хотите узнать что внутри PET пакета? Хотите узнать как его устанавливать PET? Тогда эта статья для вас...
Для начала прочтите управление пакетами в Puppy чтобы иметь представление о системе управления пакетами.
Установка PET пакетов Навсегда запомните что существует две версии PET пакетов - "официальные" и "не официальные".
Официальные PET пакеты, которые можно найти в Unleashed сборке, можно установить с помощью менеджера пакетов PETget (смотрите иконку с подписью "install"(“Установить”) на рабочем столе или в "Setup"(“Установка”) меню). После запуска программы перед вами предстанет список доступных пакетов.
С другой стороны, PET пакеты, как официальные так и не официальные, могут быть установлены просто двойным щелчком на их иконке. Файловый менеджер ROX-Filer распознает все файлы, имеющие разрешение '.pet' и если вы щелкните на их изображении ROX-Filer сам запустит PETget. Некоторые PET пакеты, как официальные так и не официальные, могут быть установлены таким способом. Кроме того, SeaMonkey веб браузер, не так ли. Щелкните на ссылке на ".pet" файл, на какой-нибудь веб-странице и SeaMonkey предложит вам скачать пакет к себе на компьютер или же открыть непосредственно в PETget. Последнее означает что вы просто щелкаете на пакет в интернете и вуаля... он установлен!!
В действительности некоторые приложения которые в ходе работы читают информацию mime типа из /etc/mailcap and /etc/mime.type распознают .pet файл и запустят PETget. Тоже самое для баз данных mime типа в /usr/share/mime.
Как создавать PET пакеты Это задача "PET tools" - скрипты создания PET пакетов и конвертирования в PET формат других пакетов.
Во-первых, для ответа на самый важный вопрос: допустим вы скачали нужные вам исходники из интернета и хотите скомпилировать PET пакет. Как?
Это очень просто: после компиляции необходимо сделать всего один шаг "make install" такой: # new2dir make install "new2dir" это аргумент скрипта "make install" и в результате выполнения он создаст директорию во всеми файлами и папками в ней(new2dir). Сейчас нет необходимости более детально рассматривать этот процесс, что и как делает этот скрипт. Например, если вы скомпилировали "abiword-2.5.6" тогда будет создана директория "abiword-2.5.6-i486" со всеми установочными файлами.
Следущий шаг тоже прост: # dir2pet abiword-2.5.6-i486 Это создаст PET пакет, файл "abiword-2.5.6-i486.pet". Вот и все.
Создав PET пакет, вы можете сделать его доступным для других пользователей. PET пакет даже может быть отправлен мне для включения в список "официальных" пакетов Unleashed сборки.
PET утилиты Puppy имеет набор скриптов предназначенных для работы с PET пакетами:
Скрипт..................Пример............................Описание dir2pet...........dir2pet abiword-2.5.6-i486............Конвертирует директорию в PET пакет new2dir...............new2dir make install...............Создает директорию установочных файлов pet2tgz..........pet2tgz abiword-2.5.6-i486.pet......Конвертирует .pet в .tar.gz архив pup2pet...........pup2pet abiword-2.5.6.pup..........Конвертирует DotPup в a PET пакет tgz2pet..........tgz2pet abiword-2.5.6.tar.gz..........Конвертирует .tar.gz файл в PET пакет
Все они находятся в /usr/bin. Все они просты в использовании. Большинство будут просто задавать вам простые вопросы и информировать о действиях на каждом шаге.
На самом деле ".pet" файл это архив ".tar.gz", за исключением 32-х байт md5sum (контрольная сумма файла) дописанных в конец файла. Все что "pet2tgz" скрипт удаляет это md5sum. Все что "tgz2pet" добавляет это md5sum.
Скрипт "pup2pet" куда более специфичен. Он конвертирует DotPup в PET пакеты. Он задает несколько вопросов и расчитанных не то что отвечающий и создатель DotPup одно лицо, вопросы несложные и кто угодно сможет понять и выбрать правильные ответы.
Скрипт "new2dir" очень функционален. Он будет делать все что указывается в командной строке, обычно при команде "make install" он будет контролировать все установочные файлы и копировать их в раздельные директории. Например, пакет "abiword-2.5.6": будет создана директория "abiword-2.5.6-i486" и установочные файлы будут скопированы нее. Постфикс "-i486" это тип CPU для которого компилируется пакет – есть еще "-i586" и "-i686".
"new2dir" может больше. Он может разъединять "development", "documentation" и "international" компоненты установочных файлов по разным директориям. Существует одна главная целевая директория, например "abiword-2.5.6-i486", но опционально некоторые компоненты могут быть помещены в "abiword_DEV-2.5.6-i486", "abiword_DOC-2.5.6-i486" или "abiword_NLS-2.5.6-i486". Где сделать это распределение вопрос для создателя PET пакета – это делается для сокращения размера пакета. Обычно если в пакете разделены библиотеки это лучше для последующей разработки. Скрипт "dir2pet" может быть применен к каждоый их этих директорий, преобразуя их в PET.
Как конвертировать DotPup в PET Я создал скрипт 'pup2pet', описанный выше. Однако, это не реально конвертировать DotPup, просто упакуем его в PET. Скажем у вас есть "abiword-2.5.6.pup" и вы выполняете команду: # pup2pet abiword-2.5.6.pup Это изменит исходный пакет на "abiword-2.5.6.pet", но если вы загляните внутрь PET пакета (о том как открыть PET пакет читайте далее) вы увидите дви или три файла: "abiword-2.5.6.pup", "abiword-2.5.6.pet.specs" и по возможности "abiword.desktop" – таким образом, DotPup теперь здесь. Когда PETget устанавливает такие PET, он вызывает встроенный DotPup менеджер, dotpuprox.sh. Таким образом, DotPup устанавливается точно так же как стандартный.
Одна незначительная проблема в данном методе: DotPup установочник включает всплывающие подсказки, которые высвечиваются в меню, однако . PETget не позволяет DotPup установщику работать с меню оконного менеджера, как это делают ".desktop" файлы.
Данная техника имеет приимущество, заключающееся в том, что DotPup устанавливается абсолютно так же как нековертированный PET пакет. Однако, существует другой способ сделать это по сущности полная переделка в PET формат: # new2dir dotpuprox.sh `pwd`/abiword-2.5.6.pup # dir2pet abiword-2.5.6-i486 Несмотря на то что DotPup установщик используется для установки DotPup пакетов, контроль устанавливаемых файлов проводится с помощью "new2dir", который создает папку "abiword-2.5.6-i486" с устанавливаемыми файлами и каталогами. Затем конвертируется папка "abiword-2.5.6-i486" в PET пакет.
Внутри PET пакета Откройте PET пакет взгляните на файлы и каталоги, это больше похоже на обычный бинарный архив. В Puppy package management я показал на примере Torsmo пакета – давайте проследуем внутрь пакета и взглянем как это выглядит изнутри PET пакета.
Для подтверждения, Torsmo пакет содержит только 2 файла: /usr/local/bin/torsmo /usr/local/lib/X11/mini-icons/torsmo.xpm Если убрать контрольную сумму md5sum в файле "torsmo-1.0.pet" : # pet2tgz torsmo-1.0.pet Тогда откроем его так: # tar -zxf torsmo-1.0.tar.gz Вот что мы должны увидеть:
Директория "usr" содержит поддиректории и файлы.
Большинство PET пакетов имеют "specs"(данные) файл который содержит файл с текстовой информацией которую использует PETget для управления целями пакетов. Скрипты "dir2pet" и "pup2pet" создают этот файл.
Отметим что вы также можете поместить 16x16 XPM изображение в "specs" файл и PETget переместит его в /usr/local/lib/X11/mini-icons (стандартное место расположения иконок меню 16x16). Также вы можете разместить 48x48 XPM или PNG изображение в "specs" файл и он будет перемещен в /usr/local/lib/X11/pixmaps (важное замечание: он должен быть назван 'something48.xpm' или 'something48.png', тоесть он должен иметь символы '48' в имени для корректного распознавания PETget менеджером).
В случае с Torsmo, вместо перемещения файла "torsmo.xpm" внутрь "usr/local/lib/X11/mini-icons" каталога, мы можем поместить его сюда:
На этом скриншоте видно еще 2 файла: "pinstall.sh" который выполняется сразу после установки и "puninstall.sh" который выполняется сразу после удаления файлов. (Отметим что PETget скопирует скрипт удаления в /root/.packages/ и переименует его в "torsmo-1.0.remove")
Просто чобы завершить цикл, откройте Torsmo PET пакет, если что нибудь в нем изменилось то мы можем очень просто все восстановить обратно: # tar -c -f torsmo-1.0.tar torsmo-1.0/ # gzip torsmo-1.0.tar # tgz2pet torsmo-1.0.tar.gz Пост-инсталляционный скрипт Это опциональный скрипт который вы можете создать сами. Очень немногие PET пакеты нуждаются в нем. Тоже самое для пост-деинсталяционного скрипта .
Но, если вам нужно создать "pinstall.sh" скрипт, здесь несколько подсказок:
Пост-инсталяционный скрипт требует дополнительных разъяснений. Нет различий в стандартных PET пакетах и PET package в Unleashed сборке, кроме их областей применения. Unleashed пакеты используются при создании Puppy live-CD ISO образа, в то время как стандартные PET пакеты доступны для свободного скачивания в интернете и установке с помощью PETget менеджера. В обоих случаях, пост-инсталяционный скрипт будет выполнен после установки пакета.
Здесь приведен базовый формат, для случая установки пакета браузера Dillo:
#!/bin/sh #post-install script. #creatuppy: current directory is rootfs-complete, which has the final filesystem. #pupget: current directory is /. #dillo is by default the default internal html viewer. #if no other browser, then dillo will also have to be the default web browser... if [ "`ls -1 ./usr/local/bin/ | grep --extended-regexp "opera|mozstart|links|hv3"`" = "" ];then echo "Configuring Dillo as the default web browser..." echo '#!/bin/sh' > ./usr/local/bin/defaultbrowser echo 'exec dillo "$@"' >> ./usr/local/bin/defaultbrowser echo -n "dillo" > /tmp/rightbrwsr.txt fi
Важно знать какая директория установлена по умолчанию("current directory") когда выпоняется скрипт. В Unleashed среде, директория "rootfs-complete" создается файловой системой Puppy, и rootfs-complete/ и является директорией по умолчанию для скрипта. Однако, когда пакет загружается и устанавливается с помощью PETget менеджера, текущая директория это головная директория Puppy, тоесть "/". Вот почему скрипт ставит точку в начале "/usr/local/bin", потому что это работает в любом случае.
Эта "точка в начале" одна из специальных вещей которую вы должны запомнить перед тем как создавать "pinstall.sh" скрипт.
.desktop файл меню PET пакет который имеет пункт в меню должен иметь файл '.desktop'. Стандартная директория для таких файлов /usr/share/applications/.
Возьмем Torsmo пакет в качестве примера. Если необходимо отображать его в меню (имеется в виду меню в нижнем левом углу экрана) тогда этот файл должен входить в пакет: /usr/local/bin/torsmo /usr/local/lib/X11/mini-icons/torsmo.xpm /usr/share/applications/torsmo.desktop Скрипты создания PET пакетов 'pup2pet' и 'dir2pet' сами создадут '.desktop' файл.
Начиная с Puppy v2.14, меню всегда создается динамически, a PET пакет устанавливается или удаляется, или когда загружается новая версия Puppy (или загружается с параметром "pfix=clean" ). Это маленькая программа которая читает '.desktop' файлы и генерирует меню . Рауль (ник rarsa на Puppy Forum) сделал инфраструктуру '.desktop' файлов в Puppy и также написал генератор программ (одна из которых именно менеджер меню).
Эта динамика творит великие вещи. Установите пакет, перезапустите оконный менеджер, и вуаля – новые пункты меню, все работает! Удалите пакет, перезапустите оконный менеджер, и менюудалит лишнюю вкладку.
Вы можете открыть '.desktop' файл и посмотреть для себя, но как правило он сожержит текст для генератора о отображаемом тексте и картинке, месторасположении в иерархии меню.
Конфигурационный фал меню Стандартный оконый менеджер в "стандартной" комплектации Puppy это JWM. Его конфигурационный файл /root/.jwmrc, среди прочего есть все спецификации меню компоновки и записи . Как упоминалось, этот файл позволяет автоматически генерировать меню и обновлять его в редими работы. Таким образом, что если мы хотим кое что изменить в нем?
В остальных оконных менеджерах так же есть конфигурационный файлы, например у IceWM это /root/.icewm/menu и для Fvwm95 это /root/.fvwm95. Они могут сожержать не только спецификацию меню, но вы все равно можете редактировать их. Некоторые окнные менеджеры не пожжерживают всплывающие окна, в этом случае можно использовать дополнительные программы, например "fbpanel" – которая в свою очередь также имеет конфигурационный файл.
Когда PET пакет установлен или удален, PETget запускает маленькую программу "fixmenus" (вот отсюда /usr/sbin). Она читает конфигурацию оконного менеджера (или fbpanel) из /etc/xdg/templates и создает свежие конфигурационные файлы. Например, шаблонный файл для JWM это /etc/xdg/templates/_root_.jwmrc и будет сгенирован /root/.jwmrc. Между прочим, если вы хотите вручную изменить JWM конфигурационный файл, измените файл шаблона.
Имя файла шаблона содержит некотрые символьные замены. Например символ "_" будет сконверитирован в "/" символ. Таким образом, the "_root_.jwmrc" создастся как "/root/.jwmrc".
Файлы шаблонов могут содержать пояснения для самих себя. Если вы знакомы с самим приложением то и файл шаблона будет вам понятен. Для разработчиков, если вы создаете PET пакет для окнного менеджера, например FluxBox, поалуйста создавайте шаблон в /etc/xdg/templates.
Интернет по телефонным проводам: Как это работает Скрытый текст
Версия Puppy 2.17 применяет новую технологию для тех людей, кто выходит в интернет с помощью модема по обычной телефонной линии. Это очень старая область технологии, но мы не можем обойти тот факт, что даже самые современные модемы не поддерживаются в Linux. Для модемов, с помощью которых люди работают в интернете, Puppy стремится сделать установку и настройку полностью автоматической при помощи встроенных программных средств.
Введение У Puppy live-CD есть документация(он же HOWTO), и я применил часть из статьи "Как подключится к интернету" для этой относительно выхода в интернет с помощью модема:
Традиционно, только Linux действительно работал с тем, что мы называем "аппаратными"(или серийными) модемами - тогда как большинство модемов в наши дни это то, что называют "Софтовые"(программные) модемы, и большинство из них работает только в системе Microsoft Windows. Если у Вашего PC есть встроенный или внешний модем, подключенный через USB, наиболее вероятно что у вас программный модем.
Внешний последовательный модем. Если у вас внешний модем, то его легко распознать по кабелю - довольно большая плоская форма прямоугольника, с 9 или 25 штырьками. Это аппаратный модем, и он, определенно, будет работать в Puppy. Внутренняя модемная плата PCI. 'PCI' это гнезда на системной(материнской) плате, при помощи которых можно подключить модем. Приблизительно 5 лет назад, изобрели PCI модемы, с тех пор они все были софтомыми - таким образом наиболее вероятно, что у вас именно софтовый. Модем, встроенный на системную плату. Технически, они - все еще модемы PCI, как термин "PCI" фактически обращается к основной шине интерфейса на системной плате, с которой связаны все устройства ввода-вывода. Они - все софтовые модемы. Внешний модем USB. В наши дни USB используется для почти всех внешних устройствах: в мышах, клавиатурах, модемов, принтеров и т.д. Есть немного аппаратных USB модемов, поэтому наиболее вероятно, что модем является софтовым. Модем PCMCIA. Также известный как cardbus. Это - гнездо присутствует на ноутбуках. Устройства могут быть софтовым или аппаратным, современные модемы в основном софтовые. Что такое - софтовый(программный) модем? В основном, это - более дешевый модем, который делает только часть обработки информации, а остальное доделывает центральный процессор. По моему личному опыту могу сказать, что аппаратный модем имеет более высокую скорость передачи данных чем даже самый современный PC. Реальный минус програмного модема это то, что центральный процессор делает часть работы обработки информации и требует специального драйвера для этого модема, и большинство изготовителей потрудилось написать драйверы только для Windows(вот уже по таким мелочам и получатся что все сажаются именно на микрософтскую иглу прим. перев.). Однако, некоторые изготовители стали писать драйвера для linux, и также некоторые энтузиасты Linux написали свои драйверы.
Предупреждение!Если Вы имеете программный модем, то он, вероятно, не будет работать в Puppy. Энтузиаст Puppy 'ezeze5000' (ник на форуме) прислал мне полудюжину старых программно-модемных плат PCI на проверку и я заставил их работать в большем их количестве.
Отметьте, если софтовый модем действительно работает в Linux, его часто называют жаргонным выражением "linmodem" (линмодем).
How to телефонный вызов Версия Puppy 2.17 ввела новые фишки для телефонных вызов. Puppy автоматически обнаружит ваш аналоговый модем, и если это будет поддерживаемый тип тогда, он будет автоматически установлен, и все будет готово к соединению. Это относится к аппаратным модемам, однако Puppy теперь поддерживает много софтовых модемов. Если софт модем будет поддерживаться, то он будет сразу же автоматически обнаружен.
Предупреждение: удостоверьтесь, что ваш модем присоединен и включен, когда Вы загружаете Puppy, так как автоматические обнаружения модема происходит только при загрузке. На последующих загрузках Puppy модем не обязательно включать если вы не будете пользоваться интернет соединением через телефонную линию.
Относительно телефонного вызова все, что Вы должны сделать, это щелкнуть на иконку Conect(Соединение) на рабочем столе. Делее запустится 'Internet Connection Wizard'(мастер подключения к интернету), в котором Вы увидете кнопку "Connect to Internet by dialup analog modem" (Соединяется с Интернетом аналоговым модемом при помощи телефонного вызова). Только кликнете на ней и все работет. Я написал программу названную PupDial, она оповестит вас действительно ли ваш модем обнаружен.
Отметьте, в 'Internet Connection Wizard'(мастере подключения к интернету) Вы увидете некоторые переключатели сбоку. Они позволяют вам конфигурировать на рабочем столе значок 'Connect'(Соединение), чтобы немедленно начать запуск PupDial, а не Мастера. На один щелчек меньше, чтобы быть в онлайне.
Отметьте, Вы можете также выполнить PupDial в меню "Network"(Сеть).
Как работает автоматическое определение Чтобы понимать это, Вы должны знать кое-что о сценариях(script), которые выполняются в программе загрузки. Есть каталог /etc/rc.d, в котором лежать все эти сценарии:
'README.txt' файл в /etc/rc.d имеет информацию о порядке, в котором выполняются эти сценарии.
Сценарии 'rc.modules' и 'rc.module2' ответственны за то, чтобы загрузить ядра модулей драйверов для ваших аппаратных средств. Большинство этих модулей имеет информацию, встроенную в них о том, для каких аппаратных средств они предназначены и эти сценарии используют эту информацию, чтобы найти нужный модуль для загрузки. Например, у вас PCI модем, то модемный чип идентифицирован уникальными номером, что мы называли как Vendor:Product ID. Вы увидете его непосредственно выполняя программу PupScan (в Системном меню). Если модуль найден, то он покажет Vendor:Product ID вашего модема.
Однако, Puppy действительно намного более сложнее чем только загружает модуль. Фактическая программа, которая используется, чтобы загрузить модуль 'modprobe', и загружает скажем 'esscom' модуль (драйвер для модемов электронной системы коммутации), Puppy выполняет команду 'modprobe esscom'. В отличие от любого другого дистро, 'modprobe' был перезаписан мной, чтобы выделить модуль от файла архива модуля, вызванного 'zdrv_xxx.sfs' (где 'xxx' - номер версии Puppy), который также содержит в себе встроенную поддержку программного обеспечения и выполняется требуемым модулем. rc.modem Это - постустановочный сценарий, который запускается после того, как модемный модуль был загружен. Основное задание этого сценария это создать '/etc/wvdial.conf' настроечный сценарий, используемый выполняемым '/usr/sbin/wvdial', который делает фактическую операцию набора номера .
Сценарий rc.modem опрашивает модем, вызывая другую программу, '/usr/sbin/gen_modem_init_string', который пытается определить приемлемую строку инициализации для модема.
Сценарий может также установить модем относительно любой страны и это выполнимо с помощью сценария (различного для каждого модема), не в rc.modem сценарии. 'zdrv' - архив модулей Программа 'modprobe', если модуль не присутствует, то он "выберет" его в этом файле. Это сделано для того, чтобы Puppy загружался с максимально большой скоростью в оперативную память. Нет никакого смысла в загрузке целой кучи драйверов и поддержки файлов для аппаратных средств, которых у вас нет, это не допускает zdrv файл.
Файлы пакета firmware/executables могут также включить установочный сценарий, который выполняется только однажды.
Давайте используем пример, чтобы посмотреть как все это работает: скажем, что вы используете Lucent программый PCI модем. В программе загрузки, сценарий 'rc.modules' будет видеть соответствие между 'ltserial.ko' ядером драйвера и логином PCI вашего модемного интерфейса. Поэтому, rc.modules выполнится 'modprobe ltserial'.
Сценарий 'modprobe' загрузит 'ltserial' модуль, и если это будет впервые, то он выберет его из 'zdrv' файла. Сценарий modprobe также выяснит, если будет какое-нибудь связанное встроенное программное обеспечение (firmware) и executables, связанный с тем модулем. Он выполнит его, смотря в /lib/modules/firmware.dep.2.6.21.5 (или независимо от того, что - версия ядра в настоящее время используемая Puppy). Этот файл - поисковая таблица, которая имеет все дополнительные файлы, которые будут загружены, и эти файлы также выбраны из 'zdrv' файла.
Lucent модем имеет инсталляционный сценарий, 'pinstall.ltmodem-2.6-alk-8-patched2.sh'. Такой:
#!/bin/sh #this is called by /sbin/modprobe script, when ltserial.ko is fetched from #zdrv module, but before the module is loaded.
cat /etc/modprobe.conf | grep "ltserial" > /dev/null 2>&1 if [ ! $? -eq 0 ];then #=0 found. echo "alias char-major-62 ltserial" >> /etc/modprobe.conf echo "alias /dev/ttyLT0 ltserial" >> /etc/modprobe.conf echo "alias /dev/modem ltserial" >> /etc/modprobe.conf touch -t 0512010101 /etc/modprobe.conf #set modify date back before modules.dep. fi
Этот инсталляционный сценарий делает любую одноразовую требуемую установку, в этом случае некоторая информация должна быть добавлена в /etc/modprobe.conf.
Как с большинством модемных модулей, Lucent firmware/executables файлы также включают сценарий, который выполняется каждый раз начальные загрузки Puppy. Этот сценарий /etc/init.d/ltmodem, и это то что находится в нем: #!/bin/sh #Barry Kauler, LGPL 2007 #called from rc.local0. note, rc.local0 calls rc.modem beforehand which #sets /dev/modem if a hardware modem found (otherwise /dev/modem deleted).
if [ "`lsmod | grep '^ltserial'`" != "" ];then ln -snf ttyLT0 /dev/modem fi
#the module doesn't seem to support any country setting, so... if [ -f /etc/countryinfo ];then SPATTERN="s/^MODEM_COUNTRY_STRING.*/MODEM_COUNTRY_STRING=''/" cat /etc/countryinfo | sed -e "$SPATTERN" > /tmp/countryinfo sync mv -f /tmp/countryinfo /etc/countryinfo fi #.../usr/sbin/gen_modem_init_string reads this variable (called from second #entry to /etc/rc.d/rc.modem, in rc.local0). Главное вещь, которая делает сценарий это установить symlink /dev/modem в /dev/ttyLT0, если это не было уже установлено.
Вторая вещь, которую он делает это определяет как установить модем для определенной страны. Возможно модем не нуждается ни в чем в этом отношении.
Сценарий rc.modem тогда выполнит и создаст файл конфигурации телефонного вызова /etc/wvdial.conf.
Относительно телефонного вызова, Вы выполните один из графических интерфейсов пользователя, типа PupDial или Gkdial. Прежний внешний интерфейс приложения для командной строки 'wvdial', который в свою очередь использует 'wvdial.conf' файл конфигурации. PupDial отображает содержание wvdial.conf в небольших полях, которые Вы можете редактировать, таким образом вам не нужно редактировать wvdial.conf файл непосредственно.
Puppy после 2.10 версии отличаются от предыдущих версий. Система T2 компилирует большинство пакетов, используемых в Puppy 2.10, однако есть некоторые важные пункты:
1. Версия Ядра, собранная в T2, отличается от того, которое использовалась в Puppy 2.10. Было решено отставить то же самое ядро как в Puppy 2.02. Я обещаю, что это будет исправлено в Puppy 2.11, когда мы, вероятно, перейдем на 2.6.18 версию ядра, и скомпилируем его в T2 для использования в Puppy 2.11. 2. Нам еще требуется Vector Linux 5.1STD из-за того, что "devx" модуль (файл devx_210.sfs) в Puppy 2.10 не имеет несколько необходимых вещей, требуемых в T2 сценарии. Я намереваюсь устранить эту проблему с Puppy 2.11, тем самым устранить потребность в Vector. Пожалуйста берите последний пакет T2, файл t2-6.0-puppy-2.10.tar.gz, доступный здесь http://www.puppyos.net/test/
Проект T2 имеет ряд сценариев Bash, чтобы собрать полный Linux дистро с помощью исходных пакетов. Ось Puppy является самым крошечным, самым симпатичным и самым легким, лучший из всех существующих Linux дистро.
Если Вы хотите создать вашу собственную версию Puppy, Вы можете сделать это тремя различными способами: 1. Puppy Remaster-CD script 2. Puppy Unleashed 3. Puppy-from-scratch Вы найдете сценарий Remaster-CD в меню "Setup"(Установка), после загрузки Puppy. Это позволяет Вам установить ваш собственный набор пакетов который Вы хотите. Запишите его на CD/DVD. И так Вы получите Puppy LiveCD другим набором пакетов. Ограничение этого сценария заключается в том, что Вы можете добавить пакеты только к тем, которые уже находятся на CD Puppy.
Дистро Puppy собран из кучи бинарных пакетов, наряду со сценарием установки, все это мы назвали Puppy Unleashed. Я использую Unleashed для сборки каждого нового официального выпуска Puppy, так что делает Nathan для Grafpup, Джон для MeanPup, и так далее. Вы можете выбрать какие пакеты вам нужны в Puppy, затем создать ISO файл(файл образа дистрибутива Puppy прим. перев.). Существует веб-страница, которая объяснит, что такое Unleashed и его использовать: http://www.puppyos.com/puppy-unleashed.htm
Пункт 3 (Puppy-from-scratch). Он перекомпилирует Puppy полностью из исходных пакетов. Это - строго только для "core developers"(разработчиков ядра). Допустим, мы хотим модернизировать Puppy из GTK 2.8.17 библиотеки на 2.10.5, мы не только повторно соберем пакеты библиотеки GTK но также и все пакеты прикладных программ, которые используют нужные для них библиотеки. Также вы могли бы, например, собрать дистрибутив для центрального процессора x86 (Puppy в настоящее время собирается для 486 центральных процессоров, таким образом он будет запускаться на любых 486, 586, 686, Pentium и так далее).
Я должен предупредить Вас, что это явно для очень ограниченной аудитории. Если вы понятия не имеете "С чем его едят", то советую держаться от этого подальше. Система T2 собирает Puppy из сорсов!!! Он просто создает целую кучу "сырых" бинарных пакетов, и требуется огромная работа для преобразования их в Unleashed пакеты и "devx" модуль.
Работа с T2 и Puppy Перекомпилирование чего угодно из источника не простая задача. Требуется значительный опыт в Linux. Требуется специальная среда разработки, особенно если мы хотим модернизировать gcc компилятор и glibc C библиотеку, или собрать для другого центрального процессора. Кроме того, исходные пакеты, возможно, должны иметь примененные патчи или иметь некоторый пред/пост- выполняемый сценарий. Это невероятно сложно, и по этой причине мы объединились с проектом T2, возглавляемым Rene Rebe.
Когда я впервые начал узнавать, как работать T2, я обнаружил, что онлайн руководство было местами неполным, я отправил по почте вопросы и Rene был чрезвычайно добродушен. У меня имеется предварительно сконфигурированный T2-build-package, готовый для сборки пакетов Puppy.
Шаг 1: Качаем все необходимое Версия Puppy 2.02 и ранние версии имеют devx_xxx.sfs файл, который превращает Puppy в среду компилятора, однако он имеет некоторые ошибки. Это не хорошо для T2. Вот что я рекомендую (это то, что я сделал), это:
Установите Vector Linux 5.1STD в 20Gb раздел Linux. Vector очень легко установить, и он установит полную компиляционную среду, без необходимости докачивать дополнительный набор пакетов. Это - также очень мощная среда.
Отметьте, будьте очень осторожными, относительно версий Вектора. Они имеют скорее запутанный характер. Не выбирайте "soho", ни тем более их "Live CD". "5.1STD LiveCD" - не берите это! Скачайте или купите 5.1STD CD разработанный для установки на жесткий диск. Кроме того, вебсайт T2 предупреждает, что надо быть осторожным в использовании других дистро, поскольку некоторые собирают из другой среды. Я проверил тот работу Vector 5.1STD.
Отметьте также, более поздняя версия Puppy, созданного через T2, как ожидается, будет иметь более строго разработанный "devx" модуль, и Puppy тогда будет более подходящим для сборки в среде T2.
Шаг 2: Установите build-package(установочный пакет) T2 Загрузитесь в ваш недавно установленный Vector Linux под рутом(root), затем соединитесь с Интернетом. Отметьте, вы если чрезмерно волнуетесь о безопасности, тогда входите в систему под обычным пользователем, чтобы скачать все необходимое, затем нужно перезайти под рутом, чтобы сделать компилирование. У меня имеется T2-build-pkg версии 6.0, имя файла t2-6.0-puppy.tar.gz, предварительно сконфигурированное для Puppy. Поэтому, не загружайте его с сайта T2. Вместо этого скачайте его отсюда (последний файл может иметь имя как t2-x.x-puppy-x.xx-tar.gz, например t2-6.0-puppy-2.10.tar.gz): http://www.puppyos.net/test/
Когда T2-pkg распакован, Вы увидете эти папки: t2-6.0
Target каталог это тот каталог где происходит выбор пакетов и специальные конфигурации для Puppy. Там же Вы найдете файлы с названиями 'minimal.in', 'basic.in' и 'standard.in', которые имеют список всех пакетов, с которыми мы хотим собрать Puppy. Названия пакетов являются общим, например 'abiword', без номеров версии.
Если мы решили, что мы хотим 'abiword' в Puppy т.е. какую версию, от куда мы ее скачаем и так далее. Загляните в директорию 'package'(Пакеты) и Вы найдете подробную спецификацию для каждого пакета. В основном, Вы найдете файлы с расширениями .desc, .conf и .cache. Вам следует понять основу относительно того, что эти файлы делают, если мы если мы их откроем в текстовом редакторе. Например, если я открою файл package/gnome2/abiword/abiword.desc, я вижу, что это версия - 2.4.5, и первоначальный URL загрузки также дается. Однако, T2 будет сначала смотреть на его собственные репозитарии онлайн перед загрузкой с первоначального URL. Лучше оставлять содержание справочника 'пакета' неизменным, или если Вы действительно должны изменить какой-нибудь файл, тогда сообщите Rene об этом - например, первоначальный URL загрузки изменился, или Вы успешно собрали более позднюю версию.
Каталог загрузки это тот каталог куда были скачены пакеты. Если Вы онлайн, то T2 сделает это автоматически, но будте внимательны, даже если Вы только скачиваете набор пакетов, нужным для Puppy, размер будет около 1.5GB. Вы можете также скачать их вручную если хотите, но T2 при скачивании делает контрольную сумму... это более предпочтительный способ скачивать их.
config каталог это каталог где Вы можете создать один или более "profiles" (профилей). Я уже создал один, названный 'puppy21x', и Вы увидите папку с таким именем. Я создал этот профиль, с помощью этого сценария: # ./scripts/Config -cfg puppy21x
Если Вы хотите сделать какие-нибудь изменения в профиле puppy21x, Вы можете запустить его вручную: # ./scripts/Config -cfg puppy21x У вас будет текстовый режим "kconfig", которая предлагает огромное количество опций, допустим, в зависимости оттого для какого центрального процессора собираем, какие пакеты берем в сборку. Вы можете запустить вышеупомянутое только для того, чтобы только посмотреть что там выбрано и выходим, не делая никаких изменений.
Шаг 3: Скачайте исходные пакеты Собрать пакеты для Puppy это очень просто. Вы должны быть онлайн, так, чтобы T2 мог загрузить необходимые пакеты. Напечатайте это: # ./scripts/Download -cfg puppy21x -required Затем ждите пока около 1.5GB пакетов скачается. Отметьте, '-required' означает, что нам нужны пакеты требуемые для 'puppy21x' профиля (а не всю имеющуюся кучу, которая начисляется более чем 2400 пакетов!).
Предупреждение: я изменил некоторые из .desc файлов в папке ''package'. Например, я изменил package/www/seamonkey/seamonkey.desc на более позднюю версию (а была версия 1.0.1). Вот измененные строки: [V] 1.0.4 [D] 1889686604 seamonkey-1.0.4.source.tar.bz2 http://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/1.0.4/
Я тогда загружал seamonkey-1.0.4.source.tar.bz2 вручную в download/mirror/s/. Заметьте, что число '1889686604' T2 использует программу 'cksum' для того, чтобы делать контрольные суммы, но это сделано на несжатом файле. Сделайте это вручную: '# bunzip2 seamonkey-1.0.4.source.tar.bz2' тогда '# cksum seamonkey-1.0.4.source.tar' и сравните число.
Если T2 будет не в состоянии скачать пакет, или Вы не делали этого вручную, то сценарий Загрузки станет барахлить и будет писать жирным посыл красным цветом. Вы можете запустить этот скрипт для получения полного отчета об ошибках: # ./scripts/Download -cfg puppy21x -required
T2 действительно отказывается получать пакеты от сайтов загрузки автора, но адрес может измениться, означая, что Вы должны посмотреть в .desc файлы и исправить любые неправильные URL - и затем сообщать нам! Я имею список исходных URL репозитариев: http://www.puppyos.com/download/downpage.htm
Сценарий T2 Загрузки будет смотреть папки "6.0" в репозитариях T2, но отметьте, что Puppy использует gcc-3.4.4 и glibc-2.3.5 пакеты, и они находятся в "2.1" папках. Вы должны загрузить их вручную! Обратите внимание, что я все еще учусь, как работает с T2 build system, и я все же не знаю, как сделать так чтобы скрипт Загрузки смотреть в "2.1" папку, если исходный пакет не найден в "6.0" папке. Или, впрочем, как сделать чтобы он смотрел файлы в моем собственном репозитарии.
Моя страница загрузки также имеет связь с другими URL, где мы храним большое количество исходных пакетов, таким образом Вы можете определить местонахождение любого пакета, которые отсутствуют.
Шаг 4: Начнем компиляцию! build папка это папка куда откомпилированные файлы будут "складываться". Бинарные пакеты также будут созданы в здесь как .tar.gz файлы, они в основном нам и нужны для нашего Puppy.
После сбора всех необходимых исходных пакетов, весь процесс компилирования пакетов будет сделан с помощью команды: # ./scripts/Build-Target -cfg puppy21x Приблизительно через два дня все будет сделано!
Я не шучу, это займет не мало времени и необходимо определенное количество свободного места на диске. Вы должны распаковать файл T2-build-pkg (t2-6.0-puppy.tar.gz) в раздел Linux с приблизительно 20G свободного места. Требуется 2GHz процессора и по крайней мере 256M RAM, если Вы хотите, чтобы все было сделано через 2 дня. (Емае, эт тогда за сколько времени компилится винда?... Теперь понятно почему Виста вышла только через 4 года после ХР... прим. перев.) Вы можете во время компиляции использовать ваш PC для доступа в Интернет, но комп будет притормаживать, и не запускайте ничего ресурсоемкего.
Шаг 5: Ошибки при компиляции Во время работы, все кроме одного из этих 629 пакетов в "стандартном" наборе соберутся без проблем. Если Вы загляните в папку target/puppy/pkgsel/ , то Вы увидите, что некоторые пакеты будут прокомментированы, поскольку они не компилировались. Если Вы следуете так как описано выше, то у вас получится таже самая среда компиляции в которой я работаю. Таким образом любые дополнительные пакеты, которые Вы собираете, будет гарантировано работать в следующей версии Puppy.
Ах да, следующий Puppy ... выпуск последующих версий Puppy неизбежен. Я создал LiveCD Puppy, основанный на обновленном Unleashed с бинарными пакетами, созданными с помощью T2. Я протестил новые приложения такие как NVU и Sweep, работающая на GTK 2.8.17, и Xorg 7.0. Да, все работает!
Но, вернемся к нашей теме, насчет ошибок при компиляции. Все библиотеки собраны отлично, что является большим плюсом. Проблемы могут быть только в приложениях. Устранение проблем может быть очень простым, нужно только потратить немного времени для проверки логов компиляции.
Когда T2 собирает пакет, конечно источник tarball распаковывается, и T2 создает symlink в папке 't2-6.0'. Таким образом, нажмите на ссылку (я надеюсь, что Вы уже запустили, ROX-Filer в Vector. При запуске выберите "IceWM с рабочим столом ROX"), и Вы войдете в среду сборки пакета. Обычно T2 удаляет пакет при сборки пакета, но при появлении ошибки пакет удален не будет. Так, позже Вы можете узнать что пошло не так.
Кроме того, T2 поддерживает сборочный лог в папке build/puppy21x-6.0-puppy-x86-i486/var/adm/logs/. Например, если Seamonkey не был скомпилирован, существует этот файл: build/puppy21x-6.0-puppy-x86-i486/var/adm/logs/5-seamonkey.err. Этот файл является самым полезным чтобы найти причину ошибок.
Много ошибок приводит из-за нехватки свободного пространства на жестком диске. Создаются очень много временных файлов. Вы можете очистить все не нужное(которое не удалит успешно собранные бинары), вводя это: # ./scripts/Cleanup
Если Вы хотите удалить все собранные пакеты сделайте это: # ./scripts/Cleanup -build -cache
Шаг 6: Устранение ошибок Ошибка может произойти из-за недостающего необходимого файла, или даже из-за файла, собирающийся после ошибочного пакета. Или, выбор конфигурации, может быть неверным.
Каждый пакет имеет собственный .conf файл, где Вы можете управлять компиляционным процессом. Например, Seamonkey имеет package/www/seamonkey/seamonkey.conf. Он может быть отредактирован, хотя Rene упоминал, что это не желательно. Настраивая эти файлы мы не даем синхронизировать его с главным T2 сервером компиляционных пакетов при выходе новых версий. Чтобы обойти эту проблему, .conf файл может быть создан в папке target/puppy/ . Я уже создал несколько, и Вы можете видеть их в вышеупомянутом скрине.
Например, pstoedit пакет не компилируется. Pstoedit требует imagemagick. Хотя это является необязательным, но всеже если пакета imagemagick не существует, pstoedit будет требовать, чтобы была явная '--without-magick' опция. Puppy не использует imagemagick. Вот что я написал в файле target/puppy/pkg_pstoedit.conf: var_append confopt " " "--without-magick" Другой пример. Я должен был собрать AFPL Ghostscript особым способом. Вот что я поместил в файл pkg_afpl-ghostscript.conf: # ./configure --with-ijs --prefix=/usr confopt="--with-ijs --prefix=/usr" # make so # make soinstall makeopt="so" makeinstopt="soinstall" # [ -f /usr/bin/gsc ] && ln -sf gsc /usr/bin/ghostscript # [ -f /usr/bin/gsc ] && ln -sf gsc /usr/bin/gs bk_inst_fix_func() { [ -f /usr/bin/gs ] && ln -sf gs /usr/bin/ghostscript [ -f /usr/bin/gsc ] && ln -sf gsc /usr/bin/ghostscript [ -f /usr/bin/gsc ] && ln -sf gsc /usr/bin/gs } hook_add postmake 5 'bk_inst_fix_func' # need to compile libijs... # cd ijs # ./configure --prefix=/usr --build=i486-t2-linux-gnu --enable-shared # make # make install hook_add postmake 6 'cd ijs ; ./configure --prefix=/usr --build=i486-t2-linux-gnu --enable-shared ; make ; make install' The comment lines are what I wanted to achieve, followed by how it is actually achieved.
Отметьте, T2 собирает gimp-print прежде afpl-ghostscript, но gimp-print нуждается в libijs библиотеке, созданной afpl-ghostscript. Я устранил ошибку изменяя компиляционный порядок как определено в .desc файлах.
Отметьте, все эти ключевые слова, переменные, функции, описаны в руководстве T2, доступном на сайте T2. У них имеется онлайн HTML версия, однако я рекомендую загрузить PDF версию.
Когда Вы считаете, что Вы устранили ошибку, тогда очистите и запустите скрипт снова: # ./scripts/Cleanup # ./scripts/Build-Target -cfg puppy21x ... Я не уверен, но считаю, что все работает лучше, если я перезагружаю компьютер перед запуском скрипта.
Шаг 7: Добавление пакетов После того, как Вы прошли вышеупомянутые шаги, у вас должна быть работающая среда разработки, точно как моя. Когда вы запускаете скрипт Config: # ./scripts/Config -cfg puppy21x Вы увидете, что цель 'Puppy' выбран, и 'стандартный' шаблон также выбран. Файлы шаблона находятся в target/puppy/pkgsel/:
Эти файлы очень просты, они имеют только список пакетов, которые будут собраны. Я настроил это так, что они являются общими, в минимальном порядке minimal -> basic -> standard -> extra (Минимальный, основной, стандартный, дополнительный). Так, для 'standard' шаблона будут также включены пакеты из 'minimal' и 'basic'. Я создал 'extra.in' файл для того, чтобы добавить больше пакетов. Добавьте пакеты в этот файл, затем запустите сценарий Config снова и выбирите 'extra' шаблон. Если Вы хотели бы держать ваши файлы отдельно от моего официального 'standart' шаблона, Вы можете сделать это: # ./scripts/Config -cfg puppycustom Таким образом, мы получили другое название, но возможно Вы не хотите делать это, поскольку вам придется ждать, еще 2 дня для того, чтобы собрать в новом компиляционном профиле! (для этого вам потребуется раздел побольше на жестком диске!)
Или, только добавьте новые пакеты на конец standard.in, и и запустите скрипт Build-Target снова. Build-Target начнет компилить от того места, где остановился, то есть, не нужно повторно собирать все с начала! Набирите это: # ./scripts/Build-Target -cfg puppy21x
Шаг 8: Экспорт в Unleashed Конечная файловая система была встроена build/puppy21x-6.0-puppy-x86-i486/. Кроме того, все успешно скомпилиные пакеты были собраны в .tar.gz и находятся в: build/puppy21x-6.0-puppy-x86-i486/TOOLCHAIN/pkgs/
Вы можете копировать эти пакеты, и использовать их в Puppy.
Отметьте: многие из этих пакетов будут работать в Puppy 2.02, но не тех, которые нуждаются в более свежих библиотеках, типа GTK 2.8.17. Приложения GTK1 будут (должны) все работать, хотя в некоторых случаях вам нужно будет создать symlinks из-за различных версий библиотек. Например, T2 имеет libssl.so.0.9.8, тогда как Puppy 2.02 имеет libssl.so.0.9.7 - с предупреждениями, symlink должен работать. Лучше наоборот, то есть, приложение, собранное для Puppy 2.02 будет более вероятно работать с более поздней библиотекой... пример этого - Dillo, где я должен был создать несколько symlinks, немного повозившись Dillo заработал прекрасно.
Я взял эти бинарные пакеты T2 и экспортировал многих из них в Puppy Unleashed. Я сделал это, копируя всю 'pkgs' папку в другое место:
Я написал сценарий, названный 'splitbins.sh', который читает все .tar.gz бинарные файлы из 'pkgs' дирриктории и разбивает их в "exe"," dev", "doc" "nls" компоненты, сохраняемые в 'split-pkgs' папке. Например, seamonkey-1.0.4.tar.gz назавется как 'seamonkey-1.0.4.exe', 'seamonkey-1.0.4.dev', 'seamonkey-1.0.4.doc' и 'seamonkey-1.0.4.nls'' и будут находится в папке 'split-kgs'.
Puppy имеет "devx" модуль, который является нашим очень простым способом преобразовать Puppy в компиляционную среду. Только добавьте devx_xxx.sfs файл, и все готово для компилирования, включая C и C++ компиляторы и все файлы заголовка, поддержку. "dev" пакеты входят в "devx" модуль. Seamonkey-1.0.4.dev входит в "devx.
Шаг 9: Компилирование в Puppy Хотелось бы надеяться, Puppy 2.10 (или более новые) будет иметь "пуленепробиваемый" "devx" модуль, это не только нужно для компиляции в среде T2 (поэтому нам и не нужен Vector), но также будем в состоянии собирать пакеты.
Будующее проекта Вышеупомянутая 'pkgs' дириктория имеет в себе "сырые" бинарные пакеты, произведенные T2. В настоящее время около 629. Все они совместимы с нашим Puppy следующего поколения. Поэтому, я предлагаю сделать все доступным онлайн. Любые дополнительные пакеты, которые Вы собираете, могут быть также добавлены. Это будет объединением бинарных пакетов, которые могут применяься в Puppy.
Если Вы комплируете дополнительный пакет для Puppy, или пробуете собрать, но все время компилятор выдает ошибку, тогда нам потребуется способ синхронизировать ее в среду компиляции T2. Мы не хотим отдаляться от проекта T2. Поэтому, в target/puppy/ папке может быть согласовано между нами, возможно используя SVN. При каких-либо изменениях мы будем согласовывать с Rene.
Дополнительные Примечания T2 версии 6.0 (и 2.2.0-rc) использует gcc версию 4.x и glibc версию 4.x. Однако для совместимости с существующими приложениями Puppy и инструментами, я скопировал gcc и glibc от T2 v2.1.1. Таким образом, c packages/base/ я скопировал gcc и glibc дирриктории, заменяя в моей рабочей системе T2. Они для gcc версии 3.4.4 и glibc версии 2.3.5. Примечание, Puppy 1.08-9 и 2.0x использует gcc 3.3.x и glibc 2.3.4. Библиотека C - в основном то же самое, но libstdc ++ библиотека - v5 в 2.10 Puppies и v6 в моей рабочей T2 и Puppy 2.10 +.
Компиляционный "devx" модуль Puppy имеет простую систему для того, чтобы добавить полную поддержку компилирования. Есть файл, названный 'devx_210.sfs', где "210" - номер версии Puppy. Если этот файл будет присутствовать на жестком диске, то Puppy признает его при загрузке и будет использовать его.
Запуская 'splitbins.sh' скрипт я мог отделить бинарные пакеты, собранные T2 в "dev" и "exe" компоненты, и сразу распозновал "devx" модуль. Главная проблема состояла в том, чтобы определить точно, какие пакеты необходимы. Для отчета, здесь они: Пакеты, которые вошли полностью (и "exe" и "dev" части) в "devx" модуль autoconf-2.59 automake-1.9.6 bin86-0.16.17 binutils-2.15.94.0.2.2 bison-2.1 flex-2.5.31 gccmakedep-1.0.2 gdb-6.4 groff-1.19.1 imake-1.0.2 intltool-0.34.2 libtool-1.5.22 linux_header-2.6.12.5 m4-1.4.3 make-3.81 man-1.6b nasm-0.98.39 patch-2.5.4 pkgconfig-0.19 patchutils-0.2.31 perl-5.8.8 perl_xml_parser-2.34 perl_compress_zlib-1.35 perl_digest_sha1-2.10 perl_extutils_depends-0.205 perl_uri-1.35 perl_extutils_pkgconfig-1.07 perl_html_parser-3.51 rman-3.2 texinfo-4.7 Пакеты, для которых "exe" лишь часть вошла в Unleashed pkg, "dev" часть в "devx" модуль afpl_ghostscript-8.54 alsa_lib-1.0.11 atk-1.11.4 audiofile-0.2.6 boehm_gc-6.6 bzip2-1.0.3 cairo-1.0.4 cdparanoia3-alpha9.8 curl-7.15.3 e2fsprogs-1.38 ffmpeg-2005-11-20 file-4.17 freetype-2.1.10 fribidi-0.10.7 fuse-2.5.3 gcc-3.4.4 gdbm-1.8.3 gdk_pixbuf10-0.22.0 gettext-0.14.5 giflib-4.1.4 gimp_print-4.2.7 glib-2.10.2 glib12-1.2.10 glibc-2.3.5 glibmm-2.10.3 goffice-0.2.1 gtk+-2.8.17 gtk+12-1.2.10 gtkmm-2.8.8 imlib-1.9.15 lcms-1.14 libao-0.8.6 libart_lgpl23-2.3.17 libdaemon-0.8 libdvdcss-1.2.9 libdvdplay-1.0.1 libdvdread-0.9.6 libexif-0.6.13 libexif_gtk-0.3.5 libghttp10-1.0.9 libglade-2.5.1 libgnomecanvas-2.14.0 libgnomeprint-2.12.1 libgnomeprintui-2.12.1 libgphoto-2.1.6 libgsf-1.14.1 libid3tag-0.15.1b libidl-0.8.6 libidn-0.6.2 libjpeg-6b libmad-0.15.1b libmng-1.0.9 libogg-1.1.3 libpng-1.2.8 libsamplerate-0.15.1b libsigc++-2.0.17 libsndfile-1.0.16 libtiff-3.7.4 libusb-0.1.11 libvorbis-1.1.2 libxml-2.6.26 libxslt-1.1.15 libxvt-2.0.1 ncurses-5.4 netpbm-1.0.33 openssl-0.9.8b orbit2-2.14.0 pango-1.12.2 parted-1.6.25.1 pcre-6.6 perl-5.8.8 popt-1.7 qt-3.3.6 readline-5.1 sqlite-3.3.5 tcl-8.5a4 tk-8.5a4 wireless_tools-28
Кроме того, все заголовки библиотек, pkgconfig и m4 файлов в xorg-7.0 пакете помещены в "devx" модуль. Отметьте, что Xorg больше не интегрированый пакет, вместо этого есть огромное количество отдельных пакетов. Один из которых вошел пакет "xorg-7.0" в Unleashed и передача "dev" компоненты, скопированные в "devx" модуль. Ищите в папке /usr/X11R7/lib/pkgconfig/, чтобы найти все пакеты Xorg, для которых "dev" компонент также скопирован в "devx" модуль.
Для начала, хочу разъяснить, что устанавливаю Puppy при помощи минимальной установки (Опция 1), поскольку нам понадобятся файлы pup001 ИЛИ pup_save.3fs. Это не для полной установки (Опция 2), которая устанавливает Puppy в раздел жесткого диска.
Также предполагается, что у вас уже установлен Lilo вашей машине. У меня установлен Vector Linux. Вы можете загрузить этот distro и следовать этим инструкциям или использовать chroot. Например, мне установили Vector в /mnt/vector, таким образом я могу набрать "chroot /mnt/vector", и мой терминал переключит на терминал Вектора с доступом к программному обеспечению всего Вектора. Имейте в виду, что Вы можете столкнуться с некоторыми ошибками, если Вы используете chroot (хотя у меня вссе работает нормально).
Эти инструкции будут работать для Puppy 1 и Puppy 2. Я написал это для 2, но для 1 вам нужно только замениь 'initrd.gz' 'image.gz', 'pup_xxx.sfs' с 'usr_cram.fs', и 'pup_save.3fs' с 'pupxxx'.
pup_xxx.sfs, initrd.gz, и vmlinuz можете найти в ISO Puppy или на cd. Монтируете cd, используя MUT, чтобы получить доступ к нему. Чтобы получить с ISO, откройте терминал и наберите "mount ISONAMEHERE /mnt/data -o loop" затем зайдите в папку /mnt/data, чтобы найти эти файлы. Не забудьте размонтировать Cd с помощью команды "umount/mnt/data".
Шаг 1 Сначала, Вы должны выбрать какой раздел использовать для pup_save.3fs файла. Вы должны поместить pup_xxx.sfs (pup_202.sfs для Puppy 2.02) туда. Если у вас уже есть pup_save.3fs файл или devx_xxx.sfs файл, который Вы хотите использовать, также копируйте их тудаже. Они все должны быть в корне диска.
Шаг 2 Затем, зайдите в папку /boot/ distro, который содержит в себе Lilo. Сделайте сделайте название папки там "puppy". В нее, поместите файлы vmlinuz и initrd.gz.
Шаг 3 Хорошо, теперь откройте /ect/lilo.conf в том том же самом distro. Добавьте эти ктроки там.
Вы можете также добавить пароль к вашему Puppy, или другие фишки, который поддерживает Lilo. Используйте"man lilo.conf" в distro с Lilo. Этот файл может также быть найден в Интернете. Если Lilo установлен автоматически загружать другой distro, не разрешая Вам выбрать OC, а Вы бы хотели загрузить Puppy. См. "man lilo.conf" для справки. Тот файл может также быть найден в Интернете. Всего лишь напишите "man lilo.conf" в Google.
Шаг 4 Затем, неберите команду "lilo" от distro с Lilo. Ваш компьютер теперь будет в загружать Puppy без cd. Для обновления Puppy, повторите шаги 1, 2, и 4. Вам не нужно повторять шаг 3.
Несмотря на то, что Puppy легковесный дистрибутив, в нем вы найдете достаточно средств для разработки программ. В стандартный live-cd не входит среда для компиляции приложений на С и С++, однако имеется файл дополнения 'devx_xxx.sfs' (где 'xxx' это номер версии Puppy, например '210') с помощью которого, Puppy превращается в полноценную среду для разработки и компиляции на C/C++ (а также для компиляции на FreeBASIC). Но и без этого дополнения Puppy содержит множество средств для программирования, включая скрипты для Ash/Bash, Tcl/Tk и PuppyBasic.
На этой странице вы найдете описание возможностей по программированию в стандартном комплекте Puppy.
Скрипты для оболочки Ash/Bash
Язык программирования, который всегда под рукой, это оболочка командной строки. Программы (скрипты) для командной оболочки в системах Unix/Linux имеют давнюю историю и будут использоваться еще долгое время. Под командной оболочкой мы понимаем интерфейс командной строки. Когда запущена система X Windows, доступ к командной строке мы получаем в окне терминала.
Порграмма, которая осуществяет интерпретацию вводимых пользователем команд называется оболочкой, под Linux это чаще всего оболочка Bash. Пользователи Puppy могут выбрать из двух оболочек: Bash и Ash. Имейте ввиду, что когда вы работаете в окне терминала под X, запущен Bash. Если вы выходите из X в коммандную строку, вы работаете с Ash. В скрипте вы можете явно задать в какой оболочке ему запускаться на исполнение, поместив в его первой строке "#!/bin/bash" или "#!/bin/sh" (или "#!/bin/ash")
Скрипт для оболочки это програма, готовая для запуска, но в текстовом формате и без необходимости ее компиляции. Скрипты могут быть весьма сложными, большое количество их вы можете найти в Puppy.
Эта страница не научит вас программировать скрипты, для этого есть множество печатных книг и информации в Интернет. Вот некоторые источники:
Все что вам понадобиться чтобы писать скрипты для оболочки, это текстовый редактор. В состав Puppy входит два консольных редактора: e2 и MP, и два редактора с графическим интерфейсом: Geany и Leafpad. Geany и MP наиболее интересные из них в плане программирования, поскольку имеют встроенную подсветку синтаксиса для множества языков программирования.
В Puppy вы найдете достаточное количество документации и инструментов, которые могут помоч вам в написании скриптов для командной оболочки:
e2, mp <mp.txt>, Geany <usr/share/doc/geany/geany.txt>, Leafpad Текстовые редакотры Ash <ash.htm> Командная оболочка, используемая в Puppy BusyBox <busybox.htm> Набор основных команд Unix/Linux используемых в консольных приложениях и скриптах Xdialog <Xdialog/index.html> Графический интерфейс GTK для скриптов xmessage <xmessage.htm> Простой графический интерфейс диалогов для скриптов xcut <xcut.htm> Консольное приложение для работы с буфером обмена gtk-shell Очень гибкая и простая GTK-альтернатива xmessage и Xdialog. Может отобрахать и редактировать файлы, показывать диалоги выбора файла, приглашения для ввода команд пользователем, кнопки для выбора. Без документации, для получения подсказки просто введите "# gtk-shell-h". gtkdialog3 <gtkdialog3.txt> Еще одна альтернатива gtk-shell, xmessage и Xdialog. Gtkdialog это инструмент GTK2, который использует файлы XML с описаниями форматов пользовательских диалогов, позволяющий создавать в приложениях очень сложные графические интерфейсы пользователя (GUI). Имейте ввиду, что сейчас в Puppy содержится две версии: gtkdialog2 и gtkdialog3. Желательно, чтобы вы пользовались последней, так как вероятно в будущем gtkdialog3 будет единственной в Puppy.
Tcl это язык интерпретации скриптов по концепции близкий к языку командной ооболочки, описанному ниже. На самом деле программу на Tcl можно с легкостью вставить в скрипт оболочи. Однако отличным от програмного языка оболочки Tcl делает библиотека Tk, превращающая этот язык в полоноценную среду разработки приложений с графическим интерфейсом. Для Tcl существует множество расширений и библиотек, в Puppy имеется: Tk - стандартное расширение, дающее возможномть использовать все основные вижеты, Img - расширение для использования графических форматов jpeg, png и т.д. (помимо формата gif, стандартного для Tcl/Tk), Combobox, BWidget. Вы можете найти эти расширения в дирекотрии /usr/lib.
Множество приложений для Puppy (или PET пакеты) написаны с использованием Tcl/Tk, например: Slidedraw, TkZip, CDTAR, XS, snamp, tkpppoe, phv, TkDVD и regexpviewer.
Почему Tcl? Почему не Perl или Java? Лично я вижу три основных причины: наличие множества приложений с графическим интерфейсом, Tcl/Tk достаточно компактен и наконец он прост для изучения.
Так же не стоит забывать о поддержке. Сообщество программистов Tcl/Tk очень активно, на их вебсайтах можно найти огромное окличество документации, учебников и примеров кода. Tcl/Tk можно найти в любом дистрибутиве Unix/Linux а также в других операционных системах, таких как Windows и MacOS.
Несколько интсрументов в Puppy для програмирования на Tcl/Tk:
ML. Консольный редактор MP и редактор с графическим интерфейсом Beaver имеют подсветку синтаксиса для Tcl/Tk, в Puppy однако вы найдете еще один консольный редактор с подсветкой синтаксиса - ML, специально созданный для написания кода на Tcl/Tk. tkcon. Это приложение-терминал, подобный эмулятору терминала rxvt, по функциональности равный rxvt, но с некоторыми опциями, облегчающими прогрпммирование на Tcl/Tk. В данный момент в состав Puppy не входит.
Я не включаю в Puppy документацию по обучению программированию на Tcl/Tk, для этой цели вы можете приобрести хорошую книгу или найти документацию в Сети. Некоторые Интернет-ссылки по Tcl/Tk:
www.tcl.tk/advocacy/top10.html <http://www.tcl.tk/advocacy/top10.htm> Top 10 reasons to choose Tcl www.tldp.org/HOWTO/Scripting-GUI-TclTk <http://www.tldp.org/HOWTO/Scripting-GUI-TclTk/> Scripting graphical commands with Tcl/Tk: mini HOWTO mini.net/tcl/540.html <http://mini.net/tcl/540.html> Is Tcl different! mini.net/tcl/3222 <http://mini.net/tcl/3222> Tcl/Tk is too easy rsusu1.rnd.runnet.ru/graphics/tcl/tcl-faq <http://rsusu1.rnd.runnet.ru/graphics/tcl/tcl-faq> comp.lang.tcl newsgroup FAQ wiki.tcl.tk/969 <http://wiki.tcl.tk/969> Arts and crafts of Tcl-Tk programming hegel.ittc.ukans.edu/topics/tcltk/ <http://hegel.ittc.ukans.edu/topics/tcltk/> Online docs www.beedub.com/book/ <http://www.beedub.com/book/> Book extracts "Practical programming in Tcl and Tk"
PuppyBasic
Этот интерпретатор програного языка - еще одна альтернатива для разработки скриптов для Puppy. PuppyBasic также известен как wxBasicScript и происходит от более мощной версии под названием wxBasic. В PuppyBasic имеются расширения для для написания приложений под X Window, в частности с использованием Xdialog и gtkdialog для прорисовки окон.
All of the tools for compiling C/C++ applications are to be found in an add-on file named devx_xxx.sfs.
Все необходимое для компиляции приложений, написаных на C/C++ вы найдете в файле дополнения devx_xxx.sfs. Использовать его очень просто. Загрузите этот файл из Сети и поместите его в директорию /mnt/home (туда же, где находится файл "pup_save.3fs")
Или если вы установили Puppy на жесткий диск с опцией "полной" установки (то есть Puppy занимает отдеьный раздел жесткого диска, без использования ram-диска), поместите файл devx_xxx.sfs в корневую директорию файловой системы "/", после чего требуется произвести действия, описанные на странице: http://www.puppylinux.com/hard-puppy.htm.
После того, как вы разместили файл devs_xxx.sfs в нужном месте, перезагрузите Puppy и все готово для работы. Вам будут доступны все обычные средства компиляции, такие как "configure" и "make".
Имейте ввиду, что если вы хотите произволить компиляцию с live-cd диска, потребуется достаточно много оперативной памяти и linux swap раздел на жестком диске. Процесс компиляции программ на C/C++ требует много пространства для временного хранения даных, так что если Puppy полностью загружен в оперативную память, могут возникнуть проблемы. К примеру я работаю с Puppy live-cd, на моем компьютере 256 Мб оперативной памяти и 400 Мб swap-раздел, таким образом полезный объем ram-диска для работы составляет примерно 520 Мб.
Програмирование на FreeBASIC
Если вам нужна простота Basic и эффективность компилятора, имеет смысл попробовать FreeBASIC. В отличие от других бесплатных компиляторов (такх как FreePascal), FreeBASIC генерирует очень компактные исполняемые файлы. Так же вы можете пользоваться всеми разделяемыми библиотеками в составе Puppy, включая библиотеку GTK. Пакет FreeBASIC включает примеры обучающие примеры для GTK, взятые с www.gtk.org.
FreeBASIC входит в состав модуля 'devx', так что вам достаточно просто установить этот модуль. Примеры для FreeBASIC вы найдете в директории /usr/share/doc/freebasic. Исполняемые файлы находятся в директории /usr/share/freebasic. Компилятор 'fbc' в /usrbin/fbc.
Мы понимаем, что MS Office дефакто является стандартом среди офисных приложений, так что хотим мы того или нет, приходится иметь дело с документами, созданными в нем. Начнем с документов MS Word...
Microsoft Word: .doc файлы
Microsoft использует закрытый и плохо документированный формат для файлов текстового процессора Word и что еще хуже, документ созданный в Word2000 может быть не читаем скажем в Word97. Этот факт дает возможность для Microsoft заставить пользователей постоянно обновлять версии своего офисного пакета.
Посмотрим какова ситуация в Puppy.
До версии 0.9.4 в состав Puppy входила утилита Antiword, которая конвертировала файлы MS Word DOC в Postscript, после чего их можно было просмотреть но не отредактировать.
Однако начиная с версии 0.9.5, в Puppy есть текстовый процессор Abiword, который имеет возможность импорта/экспорта файлов .doc
Страница помощи по Abiword: /usr/share/doc/abiword.htm
Имейте ввиду, что файловый менеджер Rox, почтовый клиент Sylpheed и другие приложения могут вызывать Abiword для открытия .doc файлов. Просто щелкните левой кнопкой мыши на DOC файле в Rox и он откроется в Abiword.
Файлы конфигурации ROX-Filer находятся в /root/Choices/ Файл конфигурации Sylpheed находится в /root/.sylpheed/sylpheedrc типы MIME и внешние приложения для обработки вложений Sylpheed берутся из /etc/mimetypes и /etc/mailcap Seamonkey использует файлы /etc/mimetypes и /etc/mailcap для проигрывания/открытия скачиваемых файлов.
MS Word .rtf файлы
RTF означает Rich Text Format, это формат файлов для текстовых процессоров. Стандарт RTF полностью документирован и все основные текстовые процессоры умеют открывать и сохранять их, включая MS Word. Таким образом стоит поощрять пользователей MS Word сохранять документы в RTF формате, если они хотят поделиться документами с пользователями других текстовых процессоров.
До версии 0.9.4 в составе Puppy был текстовый процессор Ted, использующий RTF как формат по умолчанию.
Начиная с версии 0.9.5 для иморта/экспорта RTF используется Abiword.
Опять же, ROX-Filer и Sylpheed сконфигурированы для распознавания файлов с расширением .rtf и автоматически открывать их в Abiword.
Файлы электронных таблиц MS Excel
Приложение для работы с электронными таблицами Exel - часть пакета MS Office. До версии 0.9.7 в составе Puppy шел ABS - приложение для работы с электронными таблицами. ABS все еще доступен пользователям как пакет PupGet. ABS умеет конвертировать файлы своего "родного" формата в файлы Exel и обратно.
Puppy версий 0.9.8+ содержал Planmaker Free Edition, бесплатную версию Planmaker. Эта версия не имеет ограничений, кроме органичения на максимальное количество строк и столбцов, которые доступны для редактирования.
В Puppy версий 1.0.4 и более поздних содержится Gnumeric, с набором плагинов включая импорт и экспорт файлов Exel. Gnumeric это приложение с открытым кодом, бесплатное и отличного качества.
И наконец, если вам этого мало, можете воспользоваться Openoffice, который не идет в составе live-cd, но доступен для загрузки как PupGet пакет.
Шрифты MS
Да, шрифты MS TrueType можно с легкостью использовать в Puppy, достаточно просто их скопировать (или если вас волнует вопрос легальности, просто создать на них символьные ссылки в соответствующих местах)
На странице помощи по Abiword вы можете прочитать как это делается: /usr/share/doc/abiword.htm
Open Document Format
Формат ODF сейчас становится международным стандартом для файлов электронных документов. Abiword умеет импортировать и экспортировать файлы формата ODF.
Ну а что же MS Office? Microsoft находится в оппозиции по отношению к формату ODF. Поскольку ей невыгодно поддерживать открытый формат, она предпочитает навязывать пользователям закрытые недокументированные форматы, чтобы держаться на шаг впереди конкурентов. Так что пока MS Ofiice не имеет возможности работать с документами в формате ODF. Но есть и хорошие новости: существует бесплатный плагин для работы с ODF в MS Office.
------------------------------------------------------------------------ Замечание: Вы можете найти примеры файлов в форматах .xls и .doc в директории /usr/share/
Это первая альфа-версия того, что я условно называю RawPup. Я полагаю, что она станет залогом намечающейся четвертой серии. Эта версия Puppy со значительно переработаной основой, для достижения меньшего размера. Пакеты скомпилированы с использованием Т2, для обеспечения мимнимума зависимостей. Мне пришлось принять несколько трудных решений, которые не всем будут по нраву. Puppy развивается уже не один год, и включает в себя самый широкий набор приложений. Если же чего-то нет в дистрибутиве, то это можно сделать доступным посредством PET пакетов.
Я выпустил релиз альфы сегодня, потому что завтра у меня уже не будет доступа в сеть вплоть до вечера воскресенья, когда я планирую вернуться в Перт. Список того, что предстоит сделать по прежнему велик:
1. Нет регулятора громкости на панели задач.
2. На ibiblio пока не выложены PET пакеты. Я планирую завести там под них отдельную директорию. Так что пока менеджер пакетов PETget не работает.
3. Universal Installer частично не работает. Я пытался сделать полную установку на жесткий диск, но обнаружил, что ни один модуль не установился в /lib/modules. Это лечится простым способом: щелкните на zdrv_390.sfs и devx_390.sfs, ROX подмонтирует их, после чего в терминале наберите 'cp -a --remove-destination ./* /mnt/xxx/' где 'xxx' раздел, на который производится установка. Так же имеется проблема с Flash, так как syslinux в Puppy не использует mtools, может потребоваться внести изменения в скрипт.
4. Не пытайтесь, я повторяю: НЕ ПЫТАЙТЕСЬ обновить pup_save файл. Нужно еще кое что разобрать. Загружайтесь с опцией 'puppy pfix=ram' и при выгрузке вы сможете создать новый pup_save.
5. Возможно вас смутит цветовая схема. Особенно если вы предпочитаете серо-голубые темы. Мне не сособенно нравятся иконки в них, возможно их стоит снова сделать прозрачными или полупрозрачными... На самом деле прозрачная заливка сочетается с любой темой. Если что, на live-cd есть также тема и иконки zigbert'а. В любом случае это эксериментальная версия, в финальном релизе все равно все будет немного не так.
6. Я выбрал версию ядра 2.6.18.8, так как это последняя версия с традиционной поддержкой IDE приводов. Начиная с версии 2.6.19 ядро включает объединенную SCSI эмуляцию для всех IDE приводов, которая хоть и опциональна, имеет проблемы совместимости с оборудованием, так что приходится решать использовать ее или нет. Я намереваюсь выпускать четвертую версию также в варианте с более свежими версиями ядра. Хотя тут есть одна проблема (см. пункт 10)
7. В этой версии только Xvesa. Скоро будет выпущен PET пакет с всемии драйверами Xorg.
8. The Roaring Penguin PPPOE package is there, but no GUI as it is based on Tcl/Tk. I never use this, so know very little about it, but I am wondering... the ppp package has a PPPOE plugin which is code taken from Roaring Penguin, so couldn't ordinary dialup GUI programs be made to use PPPOE? Пакет The Roaring Penguin PPPOE присутствует, но без графического интерфейса, так как он основан на Tcl/Tk. Этот пакет я никогда не использовал, так что не совсем в курсе, но если пакет ppp, содержащит плагин PPPOE c кодом из Roaring Penguin, разве обычная звонилка с граф.интерфейсом не может использовать PPPOE?
9. Я подготовил множество модулей для ядра 2.6.18.8, включая драйвер 'tifm', который требуют многие SD кард-ридеры. Но у меня не получилось скомпилировать драйвера at76c503a, Intel 537ep и rtl8180. Возможно дело в том, что я пытался откомпилировать их из последних версий исодников, как в случае с 'tifm': с версией 0.8 не получилась, а с 0.6 все вышло ок.
10. Теперь о странностях. Я прекрасно работал с SeaMonkey 1.1.5 на разных альфа-билдах RawPup на протяжении последней пары недель. Потом, после того как я залил первый релиз альфа1, при попытке зайти на свой блог, SeaMonkey вылетел. И вылетал всякий раз, когда я нажимал на кнопку "войти". До этого все было нормально, кроме сообщения "Segmentation fault". В /var/log/messages и /tmp/xerrs.log появились сообщения о незапущенном демоне dhcpcd, хотя ps показывала что он запущен. Возможно дело в том, я использовал ядро 2.6.18.8, тогда как раньше была версия 2.6.21.7 Так что я сделал билд 4.00альфа1 с ядром 2.6.21.7 из pup3, без пересборки и SeaMonkey без всяких ошибок зашел на проблемную страничку. Хм, возможно старая версия dhcpcd из Puppy 2.16 будет работать? Это еще предстоит выяснить.
В любом случае обе версии выложены. Если версия с ядром 2.6.21.7 у вас работает, пользуйтесь им. Если у вас проблемы с ядром 2.6.21.7, попробуйте другое, имея ввиду возможную проблему с сетью, описанную выше.
JWM поставляется в форме бинарных исполняемых фалйов, но сперва стоит убедится что свежие версии пакетов доступны для вашего дистрибутива. Я рекомендую скомпилировать JWM из исходных кодов чтобы наверняка иметь последнюю версию. Также вы сможете быть уверенными, что документация с описанием настроек на сайте и это вступление совпадают с версией JWM в вашей системе.
Сперва нам потребуется скачать пакет с исходными кодами с http://joewing.net <http://joewing.net/programs/jwm/> или с официального зеркала <http://24.254.249.181:8080/jwm/>. Обычно (хотя это и не обязательно), я помещаю загруженный пакет в директорию /usr/src/, где у меня хранятся все пакеты с исходниками. Если вы предпочитаете хранить пакеты с исходниками в другом месте, поместите его туда, поскольку в контексте этого руковаодства это не имеет значения. Далее вам потребуется разархивировать пакет. Если вы не знакомы с программой bzip2, попробуйте так:
root[ jwm-1.5 ]# tar jxvf jwm-<version>.tar.bz2
ЗАМЕЧАНИЕ: Если вы последовали моему примеру и поместили пакет в /usr/src/, вам потребуется выполнить разархивирование с правами суперпользователя. Используйте команды su или sudo.
Теперь смените текущую директорию на вновь созданную jwm-<version> и введите:
root[ jwm-1.5 ]# ./configure --help
Я посоветую ввести команду ./configure в таком формате:
Воспользуйтесь опцией debug если хотите получить боле полный отчет об ошибках. Двоичный исполняемый файл я помещаю в /usr/bin, где у меня храняться все исполняемые файлы.
Если все прошло без ошибок, далее вводим:
root[ jwm-1.5 ]# make && make install
И теперь, если ошибок не появилось (а они не должны появиться если стадия конфигурирования прошла успешно), псоледнее что нужно сделать, это скопировать глобальный файл конфигурации в вашу домашнюю директорию:
Первым делом после того, как вы установили пакет, стоит заняться файлом конфигурвции. Откройте ~/.jwmrc в вашем любимом текстовом редакторе. Файл jwmrc написан на XML <http://www.w3.org/XML/>. Я не буду вдаваться в подробности относительно формата файла конфигурации, поскольку все тэги и их атрибуты детально описаны на Official Config Discription Page <http://www.joewing.net/programs/jwm/config.shtml>. Остановимся только на некоторых важных моментах.
Главное меню
Без него у вас не будет меню для запуска приложений и перезагрузки и выхода из мекнеджера окон. Под этим тэгом имеется четыре атрибута:
* onroot - для определения кнопки или кнопок для активации меню на десктопе. Используйте целые числа. * height - определяет высоту пункотов меню * label - текст на кнопке меню. По умолчанию "JWM" * labeled - Если вы хотите установить текст на верху меню
В секции главного меню вы можете использовать следующие тэги:
* Menu - подменю * Include - использовать внешний файл или выход исполняемой программы * Program - используется для запуска приложений * Separator - устанавлювает разделительную линию * Desktops - устанавливает виртуальные рабочие столы * Restart - перезапуск менеджера окон * Exit - выход из менеджера окон
Трэй
Вы можете указать расположение более чем одного трэя на десктопе. Используются следующие атрибуты:
* autohide - автоматически скрывать * x - x-координата расположения * y - y-координата расположения * width - ширина трэя - 0 означает по ширине компонентов * height - высота трея - 0 означает что высота определяется треем * * border - ширина границы вокруг трея - целое число в пределах 1 - 32 * layer - наслоение трея - по умолчанию 8 или выше среднего - целое число в пределах 1 - 12 * layout - положение трея - по горизонтали или по вертикали * halign - замещение для координаты x - фиксировано, лево, центр и право * valign - амещение для координаты y - фиксировано, верх, центр и низ
В трее вы можете использовать следующие (необязательные) тэги:
* Clock - часы * Dock - например для иконки gaim в трее * Pager - пэйджер * Swallow - used to "swallow" an application made for the tray - e.g. xload * TaskList - показывать запущенные приложения на десктопе * TrayButton - в основном для меню, для вызова приложений или для кнопки "showdesktop"
Стили
Стили определяют внешний вид JWM. Здесь можно настроить цвета, шрифты, размеры границ окон, отображение подсказок. Стили используются в темах, но здесь мы не разбираем глубоко этот вопрос.
Иконки
Поддерживаются иконки в форматах XPM и PNG. Иконки используются в декорации окон, кнопки трея и меню. Иконки не располагаются на рабочем столе, но некоторые дистрибутивы JWM используют ROX filer чтобы поместить их туда.
Привязки клавиш
Вы можете определить различные комбинации "горячих" клавиш для запускаприложений или для выполнения менеджером окон различных задач. Возможность задать "горячие" клавиши обладает такой мощью, что вы вполне можете отказаться от использования мыши в JWM. Привязки клавиш существуют для главного меню, меню окон, смены виртуальных рабочих столов и т.д.
Шрифты и цвета
По умолчанию используются xfont шрифты, но также есть возможность использовать true type. Я не буду вдаваться в подробности по использованию шрифтов true type, так как на разных системах их настройка различается.
Цвета настраиваются очень гибко. Настройки цвет можно воодить как в формате hex, так и в RGB (например красный это #FF0000). Или можно использовать наименования цветов, распознаваемые X сервером.
Подключаемые файлы конфигурации
Это одна из наиболее важных частей файла jwmrc. В частности потому, что использование подключаемых конфигурационных файлов дает возможность быстрой и гибкой настройки JWM путем разбивки основного конфигурционного файла jwmrc на несколько отдельных файлов. Только не путайте эту функцию с тэгом include из главного меню. Хотя они и работают по одному принципу, это разные вещи. Пример того, как это работает:
Имеется директория в которой находится пять файлов.
* groups * keybind * menu * settings * trays
В каждом из них храняться настройки из одной определенной категории. Таким образом не обязательно хранять все в одном файле jwmrc, путаясь в попытках найти там что-то, мы просто открываем определенный файл, находим и редактируем нужный нам параметр. Если мне нужно поменять настройки трея я открываю и редактирую файл trays и т.д. Единственное о чем нужно помнить, это о необходимости включить в начало файла тэг <JWM>, а в конце поставить тэг </JWM>, чтобы JWM смог прочитать конфигурацию из этих файлов.
Еще одна причина, по которой я считаю эту функцию очень важной - это возможность создавать и применять темы. Об этом мы поговорим в следующем разделе руководства.
Темы в JWM это ничто иное как файл конфигурации, которые изменяют внешний вид и поведение в текущей конфигурации JWM. Тема целиком должна включать в себя файл конфигурации, обои на рабочий стол или установки его цвета, файл шрифта (если используется truetype) и файл readme с дополнительной информацией. Файл темы включает в себя список тэгов стилей и закомментированную секцию с информацией об авторе. Вот список тэгов стилей применяемых в темах:
To provide some continuity between themes and stability for the user on installing, themes should follow the directory structure of $HOME/.jwm/themes/.
В файле readme нужно поместить инструкцию по установке темы и информацию об авторе темы, авторе картинки обоев а также другую информацию, которую вы сочтете важой и необчодимой для пользователся.
Для обеспечения единообразия в системе и облегчения использования тем, их файлы следует помещать в директорию $HOME/.jwm/themes/.
Установка
Чтобы установить темы с сайта from BSDGeek's Themes <http://bsdgeek.no-ip.org/cgi-bin/themes.pl>, поместите скачаный архив темы в домашнюю директорию, откройте файл. Пакет содержит структуру .jwm/themes. Если это ваш первый файл темы, потребуется отредактировать $HOME/.jwmrc, в котором прописывается ссылка на файл темы. Например:
Убедитесь, что эта строчка находится непосредственно ПЕРЕД закрывающим файл тегом. Возможно вы спросите, нужно ли теперь удалить раздел стилей из .jwmrc? Нет. Вам не нужно ничего менять в .jwmrc кроме прописания ссылки на файл темы, поскольку при наличии ссылки нв файл темы, для JWM будет иметь значение параметры стилей в нем, а не в файле .jwmrc
Если вы уже устанавливали тему ранее, что бы поменять тему на новую, вам нужно только изменить ее имя .jwmrc.
Создание тем
Создать свою тему достаточно просто. Выше уже объяснялось что должна включать в себя тема, чтобы быть полной. Первое и наиболее важное это сам файл темы. В нем прописываются все параметры цвета и шрифтов. Вы можете очень гибко настроить внешний вид JWM с помощью файла темы. Можно менять что угодно от часов в трее до настройки границ окон, можете даже назначить обои на рабочий стол, правда для этого вы должны иметь представление, какими утилитами пользователь меняет обои в системе.
Рекомендованое дополнение к пакету темы - файл readme и файл шрифта. В readme прописывается информация об авторе темы, авторе обоев, ссылки на различные авторские права, если тема портирована из другого менеджера окон, дата создания, история изменений и наконец инструкцио по установке. Файл шрифта должен быть в формате ttf.
Далее приводится пример темы, придерживайтесь данного формата при создании собственных тем.
[code]
<JWM> <!-- TITLE: Blood-Red AUTHOR: Joe 'joesbox' Wiles Created: 11 Apr 05 Version: 0.2.0 Updates: 24 Apr 05 Это версия 0.2.0 в отличие от оригинальной имеет исправления некоторых ошибок, таких как отсутствие тега <JWM>. Также добавлены некоторые горячие клавиши, дающие возможность изменять обои рабочего стола.
Все даты в формате GMT
3 час. Хитов сегодня: 11
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет