Сайт | Скачать | Видео | Wiki

Автор Тема: Обсуждение спецификации PFS  (Прочитано 38115 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
  • Автор темы
Обсуждение спецификации PFS
« : 11 Октябрь 2012, 14:14:19 »
Расширение файла - .pfs
Тип сжатия - xz

Структура одного пакета (от корня "/"):
  - (Каталоги и файлы программы)
  - etc
      - packages
          - mount
              - [название_пакета]
                  - pfs.files   (Список файлов, относящихся к пакету)
                  - pfs.specs   (Название программы, версия и т.д.)
                  - pfs.dirs.empty (Список пустых каталогов в пакете. Необязательный)
                  - pfs.md5sums (Хэш-суммы всех файлов в пакете. Необязательный)
                  - pfs.depends (Список зависимостей. Необязательный)

В одном файле .pfs может быть включено несколько пакетов, в этом случае в каталоге "/etc/packages/mount" должно быть несколько каталогов "[название_пакета]".

При установке пакетов соответствующие каталоги [название_пакета] перемещаются из каталога "/etc/packages/mount" в каталог "/etc/packages/install".



Преимущество нового типа пакетов в том, что они соединяют в себе все плюсы PET-пакетов и SFS-модулей.

Планируется полностью перевести PuppyRus на .pfs-пакеты (ограниченная поддержка .pet и .sfs будет оставлена для совместимости).
« Последнее редактирование: 06 Ноябрь 2012, 09:25:31 от Zay »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:Спецификация PFS-пакетов
« Ответ #1 : 11 Октябрь 2012, 15:41:08 »
Планируется полностью перевести PuppyRus на .pfs-пакеты
Можно подробнее?

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Спецификация PFS-пакетов
« Ответ #2 : 11 Октябрь 2012, 16:03:19 »
Можно подробнее?
чего подробнее то, конвертну все пакеты в pfs включая usoft  и будет всем щасте.
Скрипты системы тоже исправим.
PuppyRus он ведь уже весь разложен на составляющие, сделать из него конструктор гораздо проще чем из любой другой системы.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:Спецификация PFS-пакетов
« Ответ #3 : 11 Октябрь 2012, 16:07:17 »
А как зависимости отслеживать?
Т.е. можно будет собрать Ричи без gaff?

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Спецификация PFS-пакетов
« Ответ #4 : 11 Октябрь 2012, 16:11:53 »
да gaff будет не нужен. зависимости пока вручную отслеживать, да и gaff их не отслеживал тоже
я что-то не догоняю, вы же участвовали в обсуждении предложений  по изменению системы, все так быстро забывается?


кстати можно будет даже иванну собрать - я же почти разложил ее на составляющие.
« Последнее редактирование: 11 Октябрь 2012, 16:45:39 от Pro »
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:Спецификация PFS-пакетов
« Ответ #5 : 11 Октябрь 2012, 17:59:25 »
не догоняю, вы же участвовали в обсуждении предложений  по изменению системы, все так быстро забывается?
Так потом все пропали куда-то. Может уже "концепция изменилась"

А как initrd собирать?
В такой Иванне initrd останется такой же как во всех woof - тормозной или резвый как у нас?  ;)

http://www.sendspace.com/file/9zclz4 - модуль с иконками. Получилось на 1,7мб модуль 0,18мб служебной инфы
Предлагаю вернуться к рассмотрению:
1. В одиночном модуле (который разбирать не потребуется) вообще убрать .pfs
2. В составных убрать md5
3. psf.files делать с неполными путями как в /root/.packages/unleashed

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
  • Автор темы
Re:Спецификация PFS-пакетов
« Ответ #6 : 11 Октябрь 2012, 18:08:04 »
1. В одиночном модуле (который разбирать не потребуется) вообще убрать .pfs
Одиночного модуля скорее всего не будет (точно не могу сказать, т. к. ещё не брался за init).

2. В составных убрать md5
Плюсы присутствия md5 во всех пакетах (особенно в репозитории) я вижу.
Какие минусы, кроме чуть большего времени на создание?

3. psf.files делать с неполными путями как в /root/.packages/unleashed
Это уже обсуждали в старой теме. У такого подхода одни минусы.
Могу опять расписать подробно, если надо.

А как initrd собирать?
Вручную, очевидно.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:Спецификация PFS-пакетов
« Ответ #7 : 11 Октябрь 2012, 18:45:58 »
Плюсы понятны. Но размер служебной инфы уж очень большой. Это главный минус. Ну и делаться все буде дольше (так как не часто - не так критично)
Из идей - после сборки базы - отрезать .pfs в отдельный модуль. Я правильно понял - если не разбирать базу - эта инфа не нужна?

initrd - руками - как то грустно. Думаю скрипт возможно написать: на входе - /lib/modules - на выходе initrd  + ключи - для сетевой загрузки и т.п.
« Последнее редактирование: 11 Октябрь 2012, 19:00:38 от sfs »

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
  • Автор темы
Re:Спецификация PFS-пакетов
« Ответ #8 : 11 Октябрь 2012, 19:19:08 »
Но размер служебной инфы уж очень большой. Это главный минус.
Разница не принципиальная, а с учётом эффективного сжатия xz - и совсем ничтожная.

Ну и делаться все буде дольше (так как не часто - не так критично)
В сравнении со временем, которое уходит на сжатие - это совсем не много. ИМХО, тут экономия не актуальна.


если не разбирать базу - эта инфа не нужна?
Не будет больше никакой базы, это понятие скорее всего уйдёт в прошлое. Будет только каталог с набором постоянно подключаемых .pfs.
В данном случае задача - получить конструктор, т. е. возможность собирать пакеты-"кубики" в любых комбинациях.


initrd - руками - как то грустно. Думаю скрипт возможно написать: на входе - /lib/modules - на выходе initrd  + ключи - для сетевой загрузки и т.п.
Это теоретически можно сделать. Хуже не будет.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:Спецификация PFS-пакетов
« Ответ #9 : 11 Октябрь 2012, 19:26:00 »
Выше я привел конкретный пример. Служебной инфы 20% с учетом сжатия  :'(

Модули вместо базы- а как же ограничение в 128 штук или по какому принципу единичные модули объединять?
На скорость загрузки системы тоже должно отрицательно повлиять..
А новый init уже кто-нибудь пишет?
...наверное надо пробовать. Теоретически уже достаточно обсудили.
Практика все расставит на свои места

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
  • Автор темы
Re:Спецификация PFS-пакетов
« Ответ #10 : 12 Октябрь 2012, 11:02:45 »
Выше я привел конкретный пример. Служебной инфы 20% с учетом сжатия
Что-то я не понял, почему получился такой результат.
Вот мой эксперимент со скелетоном (там больше 4 тыс. файлов):

skeleton.sfs (без каталога /.pfs) - 11'923'456 байт.

skeleton.pfs c файлами pfs.files, pfs.dirs.empty, pfs.specs - 11'943'936 байт.
Вес каталога /.pfs (без сжатия) - 172'039 байт.

skeleton.pfs с файлами pfs.files, pfs.dirs.empty, pfs.specs и pfs.md5sums - 12'005'376 байт.
Вес каталога /.pfs (без сжатия) - 363'520 байт.

Получается разница в сжатом виде меньше 1% даже с md5 (который использовать теперь не обязательно). А без него - и вообще 0.2%.

Модули вместо базы- а как же ограничение в 128 штук или по какому принципу единичные модули объединять?
Обсуждали уже (только тема куда-то исчезла).

Объединять пакеты конечно нужно, в "комплекте" должно быть, ИМХО, от 3 до 10 .pfs (+, возможно, доп. программы - вместо Usoft'ов).
« Последнее редактирование: 12 Октябрь 2012, 11:14:32 от Zay »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re:Спецификация PFS-пакетов
« Ответ #11 : 13 Октябрь 2012, 14:54:18 »
 Вопрос к автору. Чем /.pfs/mount/packname/pfs.files лучше чем ~/.packages/packname.files?
 Зачем в корне городить лишний каталог?
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re:Спецификация PFS-пакетов
« Ответ #12 : 13 Октябрь 2012, 14:59:02 »
Причем ~/.packages/packname.files - хоть какой-то стандарт под который есть готовые скрипты - mnt_sfs из LupuRus
Самое сложное - зависимости. В имеющемся build_sfs до конца не решено и в варианте .psf легче не станет.
Не проще ли доделать build_sfs , переделать все с pet на s(p)fs и ограничиться скриптом сборки - разборки
« Последнее редактирование: 13 Октябрь 2012, 15:03:47 от sfs »

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
  • Автор темы
Re:Спецификация PFS-пакетов
« Ответ #13 : 13 Октябрь 2012, 15:46:04 »
Чем /.pfs/mount/packname/pfs.files лучше чем ~/.packages/packname.files?
Каталог в корне а не в "/root" потому что теоретически может быть реализован многопользовательский вариант, тогда использование каталога "/root" не оправдано.

А новый формат файла pfs.files (полные пути к файлам вместо старого формата) - потому что старый формат менее удобен, и к тому же в разных системах он разный (совместимости всё равно не будет).


Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
  • Автор темы
Re:Спецификация PFS-пакетов
« Ответ #14 : 13 Октябрь 2012, 15:51:17 »
Причем ~/.packages/packname.files - хоть какой-то стандарт под который есть готовые скрипты - mnt_sfs из LupuRus
Нет там никакого стандарта, я писал уже про это. А скрипт mnt_sfs явно устарел.

Чем новые скрипты не устраивают, объясните?
Там же есть аналог mnt_sfs (open_pfs), причём более функциональный.