Пакеты и модули: 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 в один (при необходимости их можно потом снова разделить).


Оригинальный текст на форуме PuppyRus: http://forum.puppyrus.org/index.php/topic,14321.0.html.

Печать/экспорт