- Пакеты и модули: PET, SFS, PFS
- Пакеты типа PET (файлы с расширением .pet).
- Модули (аддоны) SquashFS (файлы с расширеним .sfs).
- Пакеты типа PFS (файлы с расширением .pfs).
- Установка дополнительных приложений. Пакеты Puppy
- Пакеты Slackware
- Менеджер пакетов PETget
- Общее описание PetGet
- Технические детали PETget
- Неофициальные PET пакеты
Пакеты и модули: PET, SFS, PFS
В операционных системах Puppy и PuppyRus используется несколько типов пакетов и модулей (аддонов).
Кроме собственных типов многие дистрибутивы Puppy(Rus) поддерживают пакеты .deb и .rpm, но эта поддержка является дополнительной функцией, не поддерживается докачка зависимостей и т.д., поэтому рекомендуется использовать пакеты стандартного типа для используемого дистрибутива.
Пакеты типа PET (файлы с расширением .pet).
Это самый распространенный тип пакетов в Puppy и PuppyRus, поддерживается практически всеми версиями дистрибутива.
В дистрибутивах проекта Puppy Linux (в т.ч. локализованных) PET является основным типом пакетов. Устаревшие дистрибутивы PuppyRus также собирались из PET-пакетов.
В современных версиях PuppyRus (начиная c версии 12.12) используется другой тип пакетов — PFS. Поддержка PET сохранена для обратной совместимости.
Модули (аддоны) SquashFS (файлы с расширеним .sfs).
SquashFS — это файл, содержащий внутри полноценную сжатую файловую систему (только для чтения).
В дистрибутивах Puppy такие файлы используются для двух целей:
Один или несколько файлов SFS содержат в себе корневую файловую систему дистрибутива (подробнее см. Архитектура файловой системы Puppy Linux).
В файлах SFS распространяются большие программы (или наборы программ), в них же обычно закладываются требуемые библиотеки.
Преимущества использования модулей SFS перед пакетами PET — в возможности горячего подключения и отключения их непосредственно в корневую файловую систему.
Работает это так: При подключении SFS-модуля файлы, содержащиеся в нём, «возникают» в корневой файловой системе в соответствующих каталогах (при этом файлы на самом деле не копируются, а читаются операционной системой непосредственно из SFS-модуля). При отключении SFS-модуля эти файлы исчезают из файловой системы.
Пакеты типа PFS (файлы с расширением .pfs).
PFS (Package sFS) — это новый тип пакетов, разработанный командой проекта PuppyRus в 2012 году.
Пакеты типа PFS соединяют в себе преимущества пакетов PET (хранение информации о пакете внутри) и модулей SFS (возможность подключения).
Другая особенность пакетов PFS — использование контейнеров. Файл с расширением .pfs является контейнером, который может содержать внутри один или несколько пакетов PFS. Контейнеры легко перепаковать (добавить или удалить необходимые пакеты, объединить или разделить контейнеры).
Контейнеры PFS можно подключать в корневую файловую систему (так же как SFS-модули).
PFS-пакеты также могут быть установлены в систему (так же как PET, или любые другие пакеты). При установке можно выбрать необходимые пакеты из контейнера, а подключать/отключать можно только весь контейнер сразу.
В операционной системе PuppyRus PFS является стандартным форматом пакетов. Основные компоненты системы также хранятся в одном или нескольких файлах .pfs (контейнерах), которые автоматически подключаются при загрузке системы.
В дистрибутивах Puppy Linux пакеты PFS либо пока не поддерживаются, либо поддерживаются в тестовом режиме.
SFS модули для Puppy встречаются двух видов: SFS v.3 (устаревшие) и SFS v.4 (актуальные).
Все современные (поддерживаемые) дистрибутивы Puppy и PuppyRus поддерживают только SFS v.4. Модули SFS v.3 сегодня практически не встречаются, но их ещё можно найти на форумах и в некоторых репозиториях.
Модули SFS кроме версии различаются типом сжатия: gz (стандартный тип) и xz (новый, более эффективный алгоритм).
Поддержка SFS с типом сжатия xz присутствует только в дистрибутивах, в которых используется ядро Linux версии 2.6.38 или более новое.
Это же относится и к поддержке функции подключения контейнеров PFS, в которых также используется сжатие xz.
При подключении модулей SFS или контейнеров PFS в Puppy и PuppyRus существует ограничение — нельзя подключать более чем 126 (в некоторых режимах 125) модулей или контейнеров одновременно (а в некоторых устаревших дистрибутивах ограничение 64, 32, 10 или 3).
В случае использования PFS это ограничение можно обойти если объединить несколько контейнеров PFS в один (при необходимости их можно потом снова разделить).
Установка дополнительных приложений. Пакеты Puppy
Оригинальный DotPup разрабатывался GuestToo как простая система пакетов, используя которую, вы просто скачивали нужный вам .pup пакет, а затем устанавливали его в один щелчок мыши. Позже MU разработал утилиту для создания DotPup, которая так же регистрирует DotPup с PETget менеджером при установке, причем PETget можно использовать для её удаления.
Многие пакеты DotPup изменяют ‘Меню’ (найдёте слева снизу рабочего стола) непосредственно, однако в 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 . Например так:
выполнение этой команды создаст файл xgames-0.2-i386-1.pet . Запустите этот файл и PETget установит его и даже запустит скрипт установки внутри пакета Slackware.
Slackware имеет отличную от Puppy архитектуру и установочный скрипт может сделать что-то нежелательное для Puppy. В Slackware используются другие разделяемые библиотеки и некоторые необходимые им зависимости могут отсутствовать в Puppy. Однако, если Puppy разработчик обнаружит, что пакет Slackware работает в Puppy, тогда он может перевести его в пакет PET-формата для остальных пользователей.
Отметим что скрипт tgz2pet не добавляет какую-либо PET-специфику в процессе конвертирования пакетов Slackware, так что если в пакете нет файла .desktop , скрипт не будет создавать его и в Puppy. Дополнительные функции поддержки пакетов Slackware могут быть добавлены в будущем при необходимости.
lexeii: в моём дистрибутиве имеется два пакета PetGet. Ниже описан только один, похоже, старый
Менеджер пакетов PETget
Общее описание PetGet
Менеджер пакетов PETget (ранее известный как менеджер пакетов PupGet) выбирается из Меню → Настройки → Настройки PuppyRus → менеджер пакетов. Очень прост в использовании. В левом окне пакеты, доступные для установки, представлены в виде списка, в правом — уже установленные. Вот так это выглядит:
После выбора необходимого пакета, вас попросят выбрать сайт, с которого можно получить пакет или попросят указать локальный каталог с установочным файлом.
Вы могли заметить, что, подводя курсор к названию пакетов, вы видите всплывающую подсказку.
И как же установить «неофициальные» пакеты? Просто скачайте из интернета и запустите скачанный файл пакета.
Файловый менеджер 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’.
"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
Еще один момент. PET может и не иметь скрипта удаления. На пример для Torsmo это был бы файл «torsmo-1.0.remove». PETget Распознает этот файл как скрипт удаления и будет выполнять его для удаления файлов.
Статью перевел zulman