В рамках работы над дистрибутивом PuppyRus был разработан новый формат пакетов: PFS.
Преимущество нового типа пакетов в том, что они соединяют в себе все плюсы PET-пакетов и SFS-модулей. Все файлы в пакете учтены. Возможна сборка и разборка базового модуля без сборочных сред или подключение к системе выше или ниже базового модуля.
Ограниченная поддержка .pet и .sfs оставлена для совместимости.
Обсуждение на форуме PuppyRus + Скачать (пакет в стадии тестирования).
От корня «/»
В одном файле .pfs может быть включено несколько пакетов, в этом случае в каталоге «/etc/packages/mount» должно быть несколько каталогов «[Название_пакета]». При установке пакетов соответствующие каталоги [Название_пакета] перемещаются из каталога «/etc/packages/mount» в каталог «/etc/packages/install».
Основной скрипт, позволяет подключить, отключить или установить пакеты.
Если в подключаемом .pfs есть файл «/tmp/.pfs/.command», содержащий команду запуска программы (например «firefox») - то после подключения пользователю будет предложено запустить эту команду.
После подключения или установки пакетов выводится список отсутствующих зависимостей.
Удаляет выбранные пользователем пакеты.
Показывает список всех (постоянно подключённых, временно подключённых и установленных) пакетов в системе.
Скрипт позволяет установить PET-пакет, либо конвертировать его в PFS.
Позволяет подключить к корневой файловой системе AUFS файлы SFS, 2/3/4fs и разделы Ext2/3/4 (GUI к pfsload | sfsload | extload).
Редактор файлов PFS (GUI к pfsmerge).
Скрипт позволяет извлечь один или несколько пакетов из файла .pfs (GUI к pfsextract).
Подключает файл .pfs к корневой файловой системе AUFS.
Также могут быть подключены SFS, 2/3/4fs, разделы Ext2/3/4 и каталоги на таких разделах к AUFS (скрипты sfsload, extload, dirload в настоящий момент являются ссылками на pfsload).
Отключает файл от корневой файловой системы AUFS.
Устанавливает пакеты PFS в корневую файловую систему.
Удаляет пакет из корневой файловой системы (файлы, используемые несколькими пакетами не будут удалены, пока хотя бы один из этих пакетов установлен или подключён).
Конвертирует .pet в пакет PFS.
Устанавливает .pet в режиме совместимости с PFS.
При запуске pfsinfo /file.pfs выводит список пакетов в указанном файле.
При запуске без параметров выводит список всех пакетов в системе.
Создаёт .pfs пакет из каталога (аналогично mksquashfs). Автоматически создаёт файлы pfs.files, pfs.specs и pfs.dirs.empty (при наличии внутри пакета пустых каталогов).
Объединяет пакеты из нескольких файлов .pfs в один файл.
Допустимо смешанное использование (например «pfsmerge /сatalog_1 /file_1.pfs /сatalog_2 /file_2.pfs /outfile.pfs», в этом случае «/outfile.pfs» будет собран из «/file_1.pfs», «/file_2.pfs» и всех файлов .pfs из каталогов «/сatalog_1» и «/сatalog_2»).
Можно объединять до 126 .pfs за один проход (если не указывать при загрузке параметр ядра max_loop с меньшим значением). Это ограничение AUFS. При большем количестве пакетов рекомендуется объединить их в файлы по 126 пакетов, потом объединить эти файлы.
Наличие пакетов с одинаковыми названиями в объединяемых файлах .pfs недопустимо. При наличии одинаковых пакетов скрипт выведет их список и завершит работу.
Извлекает отдельные пакеты из многопакетных файлов .pfs.
Перед подключением можно скопировать пакет на RAM-диск.
Преимущества:
Недостатки:
Рекомендуется для компьютеров с RAM 500мб или более.
Копирует файл .pfs в оперативную память компьютера и подключает его.
Для отключения файла используется скрипт pfsunload. После отключения нужно очистить оперативную память командой pfsramfree.
Поиск недостающих для работы программы библиотек
Проверка зависимостей.
Файл необходимо создавать вручную. В файле должны быть перечислены пакеты-зависимости (один пакет - одна строка). В файле можно (и даже желательно) указывать не полное название пакета, а только часть.