Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => PFS-utils => Разработка PFS и Initrd => Разработка PFS-utils v.4 => Тема начата: sfs от 19 Март 2020, 15:30:59

Название: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 19 Март 2020, 15:30:59
Скачать и ключи (http://forum.puppyrus.org/index.php?topic=13419.msg168267#msg168267)
2020.09 что имеем  и что планируется (http://forum.puppyrus.org/index.php?topic=22719.msg171547#msg171547)

Sfs-get умеет консольно?
Нет. Но часть его модулей консольные
Не очень сложно будет к ним приделать pfsload
Зачем и кому такое может быть нужно?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Март 2020, 15:33:05
Ок, а где он ищет модули до того как лезть в интернет?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: krasnyh от 19 Март 2020, 15:38:08
Не умеет, т.к. реализовано меню на yad. Для консоли нужно типа ncurses.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Март 2020, 15:40:59
Для консоли нужно типа ncurses.
Для консоли надо что-то типа ключей :)
Я просто думаю как могла бы выглядеть подобная утилита в составе pfs-utils.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: krasnyh от 19 Март 2020, 15:46:34
Прикрепил, правда там 'ногу можно сломать'. :)

Похоже не на yad, а на gtkdialog.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: knn от 19 Март 2020, 15:53:10
Сборка и на одном разделе( и в одном подкаталоге) может быть не единственной.
Раньше часто выставлял себе в sfs-get приоритет-поиска по /mnt/home/ , а если там нет модуля, то тогда уже лезть в и-нет(/репы)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Март 2020, 16:03:07
Давайте попробуем порассуждать как это могло бы выглядеть со стороны пользователя. Утилита, к примеру pfsget.
У нее должен быть конфиг со списком зеркал. И где-то должны храниться уже полученные списки файлов на зеркалах.
Протоколы: ftp, http, rsync (потому что есть у яндекса) и webdav, чтоб подключать свои репы с личных файлопомоек.
По ключам:
pfsget  firefox  только скачать модуль, если их больше одного, то спросить который.
pfsget --install firefox скачать в папку, из которой модули подключаются при загрузке и подключить.
pfsget --load скачать в текущую папку и подключить
pfsget -- install -a lxde установить все модули где найдется сочетание букв lxde
pfsget --find firefox показать все файрфоксы и в какой они репе
pfsget --media 1 --install firefox установить из первой репы в списке.
pfsget --update-media перечитать репы

Чет типа такого.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: knn от 19 Март 2020, 16:11:01
 "локальные репы" подразумеваются? (лично недолюбливаю прибитость к и-нету)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Март 2020, 16:14:28
 "локальные репы" подразумеваются?
Да пока просто идеи набрасываю.
Если нужны локальные, то надо просто дописывать в тот же конфиг с репами.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 19 Март 2020, 16:42:40
Давайте попробуем порассуждать как это могло бы выглядеть со стороны пользователя
Тогда переписать на dialog
Только смысл? Это будет менее удобно чем в Х
В зависимостях только yad и gtkdialog (есть gtk2 и 3)
Давайте тогда уж полностью причешем и сделаем 2 версии - гуй и консоль
должен быть конфиг со списком зеркал.
Есть : /etc/sfs-get
где-то должны храниться уже полученные списки файлов на зеркалах.
/tmp/mod_update
ftp, http, rsync (потому что есть у яндекса) и webdav, чтоб подключать свои репы с личных файлопомоек.
Почти все есть, но надо будет парсеры подпиливать
Изначально замысел был большой (http://wiki.puppyrus.org/soft/sfs-get). Прижилось не все
Чет типа такого.
Все реализовано, но т.к. гуй - по принципу - задал что искать - нашлсь - выбрал что надо и как подключать (это отдельный гуй)
Т.е. все достаточно модульно
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: DdShurick от 19 Март 2020, 17:38:54
 Посмотреть список подключенных модулей с путями:
Код
# losetup -a
/dev/loop0: 0 /mnt/sda1/BB_64/base/Richy64F-base.xzm
/dev/loop1: 0 /mnt/sda1/BB_64/base/Richy64F-save.xzm
/dev/loop2: 0 /mnt/sda1/BB_64/base/kernel-4.14.77-pf10.xzm
/dev/loop3: 0 /mnt/sda1/BB_64/modules/Office.xzm
/dev/loop4: 0 /mnt/sda1/BB_64/modules/python-2.7.16.xzm
/dev/loop5: 0 /mnt/sda1/BB_64/modules/gtk+3-3.24.14_64.xzm
/dev/loop6: 0 /mnt/sda1/BB_64/modules/isomaster-1.3.14.xzm
/dev/loop7: 0 /mnt/sda1/BB_64/modules/IceWM-1.6.2.xzm
/dev/loop8: 0 /mnt/sda1/BB_64/modules/Bluez-5.50.xzm
/dev/loop9: 0 /mnt/sda1/BB_64/modules/rox-filer-2.11p.xzm
/dev/loop10: 0 /mnt/sda1/BB_64/modules/gpicview-0.2.5.xzm
/dev/loop11: 0 /mnt/sda1/BB_64/modules/chromium-80.0.3987.132_64.xzm
/dev/loop12: 0 /mnt/sda1/BB_64/modules/xpdf-3.04_64.xzm
/dev/loop13: 0 /mnt/sda1/BB_64/modules/jwm-2.4.0.xzm
/dev/loop14: 0 /mnt/sda1/BB_64/modules/mplayer-1.4-7.2.0.xzm
/dev/loop15: 0 /mnt/sda1/BB_64/modules/dunst-1.4.1.xzm
/dev/loop16: 0 /mnt/sda1/BB_64/modules/seamonkey-gtk2-2.49.3.xzm
/dev/loop17: 0 /mnt/sda1/BB_64/modules/flashplugin-32.0.0.330.xzm
/dev/loop18: 0 /mnt/sda1/BB_64/modules/cdrtools-3.01.xzm
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 19 Март 2020, 17:50:22
Посмотреть список подключенных модулей с путями:
да. так и определяется
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: knn от 19 Март 2020, 17:53:35
- есть набор модулей ( например для к.-либо ДЕ).
- этот набор - "просто как изначальный список"( и он известен разработчику)  - выглядит возможно проще, чем последующая обработка "к.-либо конструкций"( в том числе"загрузочной конструкции")...
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 20 Март 2020, 08:41:26
Тогда переписать на dialog
Только смысл? Это будет менее удобно чем в Х
В зависимостях только yad и gtkdialog (есть gtk2 и 3)
Давайте тогда уж полностью причешем и сделаем 2 версии - гуй и консоль

Переписывать на dialog точно нет смысла. Если делать то поновой чисто консольную утилиту. По возможности использовать теже конфиги, и куски кода из sfs-get там где не прибито гвоздями к puppy, pacman, sudo, диалогам и проч.

Делать также как остальные утилиты, все потенциально полезное в других местах переносить в функции pfs. Сейчас читается тяжело.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 20 Март 2020, 08:44:57
- есть набор модулей ( например для к.-либо ДЕ).
- этот набор - "просто как изначальный список"( и он известен разработчику)
Это нормальная идея. У ПМ это называется мета пакеты, то есть пакет у которого нет ничего кроме списка зависимостей. Надо подумать в каком виде можно интегрировать сюда.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 20 Март 2020, 09:04:58
Смотрел конфиги, не понял что для чего используется. Поясните пожалуйста.
..../links/* там списки url до конкретных файлов, тут поиск идет или всеже в самих репах?
..../list/*    как эти файлы использются и чем обусловлен такой странный формат?
.../pra-links.txt по виду как в .../links/* он к ним добавляется или как?
.../www.list похоже на список реп, Почему не указан протокол, или для ftp будет ftp.list?

Где указаны локальные репы?
Какова полная последовательность поиска?
Где пути куда сохранять?
Репы сканируются или в них есть готовый файл со списком содержимого репы?

Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 20 Март 2020, 09:13:08
Переписывать на dialog точно нет смысла
Думаю - да
Если делать то поновой чисто консольную утилиту.
Кому она может быть нужна при наличии гуй аналога. Здесь как раз тот случай , когда надо выбирать и т.п
Т.е активно взаимодействовать с интерфейсом
куски кода из sfs-get там где не прибито гвоздями к puppy, pacman, sudo, диалогам и проч.
Многие куски уже отдельными чисто консольными утилитами
C ПМ и пупи нет никакой связи. Без sudo не подключить
И главное - зависимости. У меня самопально прикручено, но в пфс нет даже стандарта
Сейчас читается тяжело.
sfs-get - да. Код исторический . Латаный перелатаный
подумать в каком виде можно интегрировать сюда
У меня - пустой модуль , в котором в /start.sh : sfs-get-dep первый модуль, второй ...
Не думаю , что это надо.
В основном в зависимостях ТК, который уже подключен вместе с ДЕ
И не думаю что юзер прямо каждые 5 минут подключает- отключает
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 20 Март 2020, 09:23:00
У меня - пустой модуль , в котором в /start.sh : sfs-get-dep первый модуль, второй ...
Не думаю , что это надо.
В основном в зависимостях ТК, который уже подключен вместе с ДЕ
И не думаю что юзер прямо каждые 5 минут подключает- отключает
Можно гораздо проще. Научить sfs-get читать списки и складывать их в репы. lxde.lst а в нем список из той же  репы.

Кому она может быть нужна при наличии гуй аналога.
Я бы использовал исключительно консольно. Не из красноглазой вредности, а из-за того что в гуе нихрена не понятно что происходит, особенно когда что-то идет не так.
Впринципе, в магос это вряд ли будет востребовано, в наших репах только модули с локализациями. Так что да, надо или нет - вопрос актуальный. Кому то еще интересно?

И главное - зависимости.
Тут надо понять как это впринципе должно быть устроено. Что делать, например,  если при загрузке не достатет зависимости?  Не грузить?


C ПМ и пупи нет никакой связи. Без sudo не подключить
Про пакман и про пуппи есть в коде, а sudo в консольную утилиту пихать не нужно. Используйте снаружи, либо su. Зачем ограничивать?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 20 Март 2020, 09:39:31
Научить sfs-get читать списки и складывать их в репы. lxde.lst а в нем список из той же  репы.
Главное не изобрести сложный и ненужный функционал
Во всех ДЕ в зависимостях только ТК
Не должно быть в модуле много зависимостей. Это не пакет
Только крупное : тк NSS icu - пожалуй и все
Маленькие подмодули (которые размером меньше, чем съест слой ауфс под них) - проще включать в главный модуль
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 20 Март 2020, 10:09:01
Смотрел конфиги, не понял что для чего используется. Поясните пожалуйста.
..../links/* там списки url до конкретных файлов, тут поиск идет или всеже в самих репах?
..../list/*    как эти файлы использются и чем обусловлен такой странный формат?
.../pra-links.txt по виду как в .../links/* он к ним добавляется или как?
.../www.list похоже на список реп, Почему не указан протокол, или для ftp будет ftp.list?

Где указаны локальные репы?
Какова полная последовательность поиска?
Где пути куда сохранять?
Репы сканируются или в них есть готовый файл со списком содержимого репы?
Вдруг не заметил :)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 20 Март 2020, 10:19:50
Кроме www.list больше ничего не используется несколько лет
http ftp подситавляется в getrepolist. Там много чего сделано через ж
Локальных реп нет. Есть поиск локальных модулей в гуе

Если есть желание этим заняться - предлагаю определить тз и уже от него двигаться
Я пока пользы от консольного варианта вообще не понял
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 20 Март 2020, 10:23:15
Я пока пользы от консольного варианта вообще не понял
Я тоже пока не уверен. Посмотрим.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 20 Март 2020, 10:37:12
Пока не определились с тз - смысла ковырять нет
Думаю без гуя смысла нет
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 20 Март 2020, 10:58:23
..../list/*    как эти файлы использются и чем обусловлен такой странный формат?
Однако понял :) Это чтоб
sfs-get браузер
и установится firefox например, так?

Я б проще сделал.

Файл alias.cfg
Код
browser браузер ie opera опера
_browser midory firefox palemoon

fm ФМ fm файловый
_fm pcmanfm-qt krusader golphin

Кусок скрипта, который выполняется если ничего не найдено/
Код
FIND=$(grep -w "$1" ./alias.cfg | awk '{print $1'})
LIST=$(grep _$FIND ./alias.cfg |sed 's/^_[^\ ]*\ //')
echo "Похоже вы ищете: $FIND"
echo "Попробуйте: $LIST"

Пример:
./pfsget opera
Похоже вы ищете: browser
Попробуйте: midory firefox palemoon

Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 20 Март 2020, 11:11:37
чтоб
sfs-get браузер
и установится firefox например, так?
Да. Это все нескольколетней давности
Пример:
Тот кто с этим не разберется точно в консоль не полезет
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 20 Март 2020, 11:14:48
./pfsget opera
Похоже вы ищете: browser
Попробуйте: midory firefox palemoon
Не разберется с этим? У вас сборки для дебилов?  :))

Голосовалку сделал. Первый раз :))
Пока 100% - ЗА
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 20 Март 2020, 11:29:16
У вас сборки для дебилов? 
Мы называем "новички". Их много
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: knn от 20 Март 2020, 15:38:40
- есть набор модулей ( например для к.-либо ДЕ).
- этот набор - "просто как изначальный список"( и он известен разработчику)  - выглядит возможно проще, чем последующая обработка "к.-либо конструкций"( в том числе"загрузочной конструкции")...
-- тогда получается немного промахнулся темой с размещением сообщения ( может и не зря).
-- предназначалось для "темы-про-Инсталятор" ( а скорее в к.-либо тему-по-загрузке-"мульти-ДЕ").

( наличие списков подборок модулей, подключаемых для к.-либо ДЕ - может помочь не запутаться при загрузке из  Меню [ сужу по себе])

Использование Переменных это - "своеобразный GUI-в-загрузчике".
Списки модулей, которые в итоге должны быть подключены - , в своем роде, - "прямолинейная( более понятная) инфа".
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: knn от 20 Март 2020, 16:19:56
Раньше залазил в sfs-get чтоб "подкрутить/прикрутить под себя" некоторые штуки.
(!могу ошибаться!, но ) у меня создалось впечатление, что "sfs-get" основан на "какой-то" ранешней наработке с адаптацией под ПРА.[ и некоторые ранее заложенные в него функции на данный момент не используются. -- Я костылил кое-что под себя на основе каких-то этих функций]

вопрос: это приблизительно так / или нет? - скорее к sfs...

Ну и может и возродятся к.-либо функции(/задумки), может что добавится, изменится ....
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: knn от 20 Март 2020, 16:33:57
- сейчас бегло глянул - вроде начало Тем "идет издалека" - http://forum.puppyrus.org/index.php?topic=13419.0 - http://forum.puppyrus.org/index.php?topic=11021.0
-- раз что-то перекраивается, может назад в историю заглянуть не помешает...
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 10:01:04
Давайте попробуем прикинуть алгоритм.
Запускаем:
getpfs nano
- проверяем в выхлопе aufs-n, если есть nano  выводим предупреждение с вопросом: "продолжить?"
- для каждой строки в списке реп. Сперва проверяем в списке модулей в репе, который был получен ранее. Если нет списка или не найдено nano в списке  получаем новый список из репы и ищем там.
- локальные папки тоже вносим в список реп и обрабатываемых также как удаленные. То есть в порядке перечисления в конфиге.
- если все ещё не найдено ищем в списке алиасов, то что предлагал выше. Можно даже нечеткий поиск прикрутить с agrep, чтоб находил даже если с ошибками написано. И выводит рекомендованные варианты.

Поиск идёт до первого найденного, что делать с модулем дальше зависит от ключей.

Нормально?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 10:06:31
Гуй вижу просто как окошко с вопросами, которые формируют cmdline для pfsget и запускает, по завершении снова окошко с результатами. Можно опционально запускать с xterm -e pfsget... Тогда будет видно весь процесс.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 10:51:14
проверяем в выхлопе aufs-n, если есть nano  выводим предупреждение с вопросом: "продолжить?"
Тут скорее ошибка : модуль уже подключен
Если нет списка или не найдено nano в списке  получаем новый список из репы и ищем там.
Тут лучше через вопрос
Если репа только что обновлена - перечитывать смысла нет
Поиск идёт до первого найденного
Надо все + выбор из них.
что делать с модулем дальше зависит от ключей.
http://wiki.puppyrus.org/puppyrus/pr218/pfs3#open_pfs
Нормально?
C учетом замечаний - да
Гуй вижу просто как окошко с вопросами,
Можно и ntf (http://wiki.puppyrus.org/soft/notify#%D0%B8%D1%82%D0%BE%D0%B3ntf) , но вряд ли будет удобно
Именно гуй sfs-get - вполне намоленный и удобный (но не идеал)
Просто внутренности переписать
Можно опционально запускать с xterm -e pfsget... Тогда будет видно весь процесс.
У меня для этого есть гуй скрипт wt - выполняет скрипт и выводит результат

С источниками http ftp - под каждый сервер придется писать свой парсер
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 10:58:23
Тут скорее ошибка : модуль уже подключен
Может версия новее в репах.
Тут лучше через вопрос
Если репа только что обновлена - перечитывать смысла нет
Это стандартное поведение urpmi, если не нашёл обновлять источники.
Надо все + выбор из них.
Вариант с первым найденным быстрее. Если смотреть на пакетные менеджеры, то обычно ставит без вопросов самый свежий. Надо подумать, возможно не один вариант оставить.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 11:03:07
С версией - как в ПМ хорошо, когда указано полное название модуля
Но тогда надо - как в ПМ и поиск по маске
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 12:42:32
А что если в файле в котором списки реп указывать не удаленную ftp и http паку, а сразу список?
То есть:
http://mirror.yandex.ru/puppyrus/pra1912/repolist.lst (или даже gz)
А в нем список с полными путями, котрые можно сразу скармливать wget, не от корня репы, а от протокола:
http://mirror.yandex.ru//pra1912/browser/firefox-1359-bla-bla.pfs
http://mirror.yandex.ru//pra1912/programmin/DEVX-bla-bla.pfs

Убиваем сразу кучу зайцев. Во первых быстрее, во вторых ничего не нужно парсить ссылки же прямые. Втретьих проще использовать свои репы так как не требуется получения списка файлов в папке, а только получение конкретного файла. То есть достаточно любого ресурса, который отдает прямые ссылки. Если вместо wget использовать aria2 подойдет даже битторент с магнет-ссылкой :).  Четвертое модули совершенно не обязаны лежать там же где список, более того они не обязаны вообще лежать на одном сервере и могут иметь даже разные протоколы (ftp,http). И пятое очень просто отследить из getpfs изменение репы.

Есть и минус, как без этого, нужно будет эти списки создавать всякий раз как вносится изменение в репу. Для основной яндекс репы можно и автоматизировать, для своих реп видимо руками.

Сюда не укладываются только локальные модули, надо подумать как впилить.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: DdShurick от 21 Март 2020, 13:01:00
а сразу список?
Как в Slackware
http://mirror.yandex.ru/slackware/slackware64-current/slackware64/FILE_LIST
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 13:04:41
У меня сейчас так и сделано :
sfs-get работает со списком , в котором уже пути http://....pfs
А его обновление - отдельная задача и тут опять под каждый ресурс свой парсер
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 13:16:30
У меня сейчас так и сделано :
В списке реп не файлы, а папки. У списков просто постоянное имя?
Тогда где здесь список?
http://mirror.yandex.ru/puppyrus/roll/1912/

А его обновление - отдельная задача и тут опять под каждый ресурс свой парсер
Не пойму суть проблемы. Что пасрсить надо?

Как в Slackware

Не совсем. Предлагаю с полными путями сразу писать.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: DdShurick от 21 Март 2020, 13:25:48
Предлагаю с полными путями сразу писать.
Смысл? $REPO должна уже быть в сборке. Остаётся добавить имя модуля.
Ещё раз прошу посмотреть, как сделано в Slackware, с подкаталогами.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 13:27:48
В списке реп не файлы, а папки
Их читает mod-up , парсит папки и создает /tmp/mod_update/repolist.txt  - c которым далее и работает sfs-get
Что пасрсить надо?
надо из http://mirror.yandex.ru/puppyrus/roll/1912/ сделать /tmp/mod_update/repolist.txt
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 13:31:24
Их читает mod-up , парсит папки и создает /tmp/mod_update/repolist.txt  - c которым далее и работает sfs-get
Значит вы меня совсем не поняли. Этот список должен лежать в репе. Сразу. По сути список и есть репа, а сами модули могут лежать где угодно, хоть на этом сервере, хоть на другом, хоть вообще дома если с битторентом заморочиться. Это, и Вам DdShuric ответ  на:
Смысл? $REPO должна уже быть в сборке. Остаётся добавить имя модуля.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: DdShurick от 21 Март 2020, 13:32:55
надо из http://mirror.yandex.ru/puppyrus/roll/1912/ сделать /tmp/mod_update/repolist.txt
Код
# curl -l ftp://mirror.yandex.ru/puppyrus/roll/1912/
001-a-1912-sf04.pfs
001-a-1912-sf05.pfs
030-gtk3-1912-sf06.pfs
030-gtk3-1912-sf07.pfs
040-de-lxde-gtk3-1912-sf04.pfs
045-tint2-graph-gtk3-16.7-3-1912-sf01.pfs
045-vala-panel-gtk3-0.4.91.r4.gf300f22-1912-sf01.pfs
070-prar-1912-sf02.pfs
089-upd-1912-sf11.pfs
089-upd-1912-sf12.pfs
089-upd-1912-sf15.pfs
089-upd-1912-sf16.pfs
DEVX-prar-1912-sf02.pfs
DEVX-prar-1912-sf05.pfs
ffmpeg-light-4.0-1912-sf01.pfs
mesa-19.2.4-1-1912-sf04.pfs
pkg-prar-1912-sf01.pfs
polkit-0.116-3-1912-sf01.pfs
pulseaudio-13.0-1912-sf01.pfs
python-3.8.0-1912-sf01.pfs
uird-r542_64-sf01.pfs
vlc-light-qt5-3.0.1-d10-sf01.pfs
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 13:34:40
Заливать в репу готовый список модулей - хорошая идея. Тогда ничего парсить не надо
Создать его проще , чем потом парсить html. Надо сразу с датой и размером
http://mirror.yandex.ru/puppyrus/2a-aarch64/2a/2a2002/pfs/palemoon-p-28.8.4_a-sf01.pfs 14-Mar-06:02 48.41M
И получаем отвязку от места хранения
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 13:36:16
curl -l ftp://mirror.yandex.ru/puppyrus/roll/1912/
С фтп на яндексе проблема. Надо http
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 13:36:32
Заливать в репу готовый список модулей - хорошая идея. Тогда ничего парсить не надо
Создать его проще , чем потом парсить html. Надо сразу с датой и размером
http://mirror.yandex.ru/puppyrus/2a-aarch64/2a/2a2002/pfs/palemoon-p-28.8.4_a-sf01.pfs 14-Mar-06:02 48.41M
И получаем отвязку от места хранения
Вот. Теперь похоже мы на одной волне :)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 13:39:37
Надо пробумать формат списка, чтоб потом можно было легко разбирать и сортировать в баш.
Что может быть еще полезно кроме даты и размера?

На ум приходит альтернативный путь. Тот же модуль на другом сервере или там же но с другим протоколом.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 13:40:43
С фтп на яндексе проблема. Надо http
По тому видимо и curlftpfs с ним криво работает.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 13:41:30
На ум приходит альтернативный путь. Тот же модуль на другом сервере или там же но с другим протоколом.
Если только вторым этапом
Не надо сходу усложнять
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 13:42:47
Если только вторым этапом
Не надо сходу усложнять
Наоборот. Нужно продумать сразу иначе потом будут костыли.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 13:45:34
Зеркала удобнее прописать в конфиг зеркал (реп) ...
Содержимое папки все равно везде будет одинакомым
Потом брать первый попавшийся - если не загрузить - следуюший
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 13:54:24
Так. А если в списке начнем с даты в формате, который легло сортировать.
2020-03-21 http://mirror.yandex.ru/puppyrus/2a-aarch64/2a/2a2002/pfs/palemoon-p-28.8.4_a-sf01.pfs
То потом можно:
сat все списки |sort |uniq | grep  че_надо |tail -n 1
И это будет самый свежий.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 14:02:43
Самый свежий надо определять не по дате, а по версии
Стандарт (http://wiki.puppyrus.org/puppyrus/pra-roll#%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D0%BC%D0%B8pfs_%D0%B8_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0%D0%BC%D0%B8_pkg__%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D1%8B_%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 14:06:34
Самый свежий надо определять не по дате, а по версии
Мы же себе формат изобретаем. Нужно чтоб удобно парсился. Давайте версию вперед писать :)
Сортировать можно и не по первой колонке, но все значения должны быть в формате который сортировке поддается. Если нужно по вресии, я б тоже ее в отдельныю колонку поместил.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 14:13:15
Дата актуальна только при поиске. Вылезло несколько модулей - если по версиям не понятно - можно по дате
Давайте версию вперед писать
Если Вы уже полностью переписываете - делайте как Вам удобнее
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 14:14:38
Чет не нашел  где написано как правильно именовать модуль. И придерживаетесь ли этого стандарта.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 14:17:11
Вот (http://wiki.puppyrus.org/puppyrus/pfs#%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D1%8B_%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%B9)
Придерживаюсь и менять совсем бы не хотелось
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 14:20:51
045-Program-такая-то-p-1.2.1_64-sf09.pfs
Учитывая, что не все параметры здесь обязательные надежно вытащить версию будет не просто. Ни в каких сриптах у вас нет такого кода
И зачем вам размер еще скажите.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 14:24:29
Ни в каких сриптах у вас нет такого кода?
splitname в mod-up
Автор - ander (давно пропал)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 16:07:10
Код
splitname(){
  local ver sver
  ver=$(echo "$1" \
        |sed 's/i[3-6]86\|x86[_-]64\|x64\|[Xx][Ff][_-]\?86\|[Qq][Tt]4/masq/g
              s/_64/_masq/g' \
        |grep -oE '[_-]([A-Za-z]{0,2}[0-9][a-z0-9]*[_.+-])+')
  local re1='\(.*\)' re2='\1' n=1 partver
  for partver in $ver ; do
     n=$(($n+1))
     partver=${partver%?}
     partver=${partver#?}
     re1="${re1}$partver\\(.*\\)"
     re2="${re2}.*\\$n"
     sver="${sver}${sver:+-}$partver"
  done
  declare -g $2=$(echo "$1" |sed 's/'$re1'\.pfs/'$re2'\\.pfs/')
  declare -g $3=$sver
}
:(((
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 16:37:55
Версия всегда три чмсла через точку? Если да, то попробуйте так
echo имя_модуля  |sed -r 's/^(.*-)([[:digit:]]{,3}\.[[:digit:]]{,3}\.[[:digit:]]{,3})(.*)$/\2/'
на разных модулях.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 18:04:33
Нифига :(
045-tint2-graph-gtk3-16.7-3-1912-sf01.pfs
045-vala-panel-gtk3-0.4.91.r4.gf300f22-1912-sf01.pfs
Вот и где здесь версия?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 21 Март 2020, 18:20:01
Версия всегда три чмсла через точку?
нет.
 :)
У ander своеобразный стиль. Я тоже половину не понимаю, но работает
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 20:02:36
045-Program-такая-то-p-1.2.1_64-sf09.pfs
045-tint2-graph-gtk3-16.7-3-1912-sf01.pfs
045-vala-panel-gtk3-0.4.91.r4.gf300f22-1912-sf01.pfs

Нид хелп. Чет не могу сообразить как вытащить отсюда версию. Проблема не в регекспах, я логики не понимаю :( Ну очень свободный стиль именования версии и следующего блока. По какому  принципу их можно разделить? В ретьем модуле вообще не ясно где версия кончается. То что у ander тоже не одинаково работает с разными модулями, так что не особо помогло.

В списки которые в репах мы версию внесем отдельным полем. Тут проблем нет, а вот с локального каталога такой список надо будет генерить и вот здесь надо вытащить версию из названия.
 
Вот такой формат получается для списка:
http://mirror.yandex.ru/puppyrus/roll/045-Program-4-p-1.2.1_64-sf09.pfs 2.3.2 2020-03-22 10000 yandex_mirror_prar_official

(протокол://путь/имя) (версия) (дата в формате %F) ( размер_в_метрах) (имя для репы)

Если новизну определять по версии, то в версии не должно быть букв, иначе с сортировкой будем ловить грабли.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: krasnyh от 21 Март 2020, 20:07:11
1.2.1
16.7-3
0.4.91.r4.gf300f22  ##  так обозначаются пакеты собранные с git, посредством AUR
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 20:19:32
О чем и говорю, если последний блок имени легко отделить, то для разделения версии и архитектуры (или как это у вас называется) я логику придумать не могу.
А ведь бывает и так: 
000-kernel-5.4.12-1-MANJARO.pfs 
001-a-1912-sf05.pfs 
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: krasnyh от 21 Март 2020, 20:32:01
Стандарты все же присутствуют, их можно увидеть невооруженным взглядом (репа LFA1801-2001 (https://mirror.yandex.ru/puppyrus/roll/180101/)). Но наверно не настолько узки, чтобы быть втиснуты в простые шаблоны.  :)

Цитата
google-chrome-gtk3-66.0.3359.139-180101-sf01.pfs
xf86-video-intel-2.99.917-1801-sf01.pfs
lxqt-archiver-git-r6-180101-sf02.pfs
vipole-180419-180101-sf01.pfs
viber-7.0.0.1035-1-180101-sf01.pfs
teamviewer-14.1.3399-1801-sf02.pfs
skypeforlinux-gtk3-8.36.76.38-1801-sf01.pfs
mplayer-light-vdpau-38139-1801-sf01.pfs

Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 21 Март 2020, 20:37:52
Стандарты все же присутствуют,
Я ж не говорю что их нет. Мне нужен код чтоб отловить  версию. Если версии нет или не распарсилось то буду писать в это поле 0, получится что это самый старый пакет :)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: krasnyh от 21 Март 2020, 20:41:17
Мне нужен код чтоб отловить  версию.
Не знаю в чем заключается идея и задача этой темы, но желание отловить версию пакета и выдать пользователю самую новую, положительно. Чтобы юзер не пребывал в муках выбора. :)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: krasnyh от 21 Март 2020, 21:03:20
Можно определять новизну пакетов по нескольким параметрам. По цифровому коду или, в сложных случаях, по дате добавления в репу.
Приводить версии модулей к какому-то общему параметру, наверно затратно.

Можно сравнивать два одинаковых модуля, но с каким-то 'зубодробительным' обозначением версии. Тоже еще один параметр определения свежести.

upd. Но это все сложно. Старый вариант, где модули грепаются по маске и пользователю выдается вся эта 'бесформенная' куча, конечно проще.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 22 Март 2020, 10:37:22
Проблема не в регекспах, я логики не понимаю
Главная задача - обновлятор
Должен определить , что в репе более свежая версия
Логику , заложенную ander полностью сформулировать не возьмусь, но она работает с имеющимися названиями модулей
000-kernel-5.4.12-1-MANJARO.pfs 
Ядра не автообновляются. Там отдельная история с привязкой к инитрд (не обязательно). Короче - ядрами не надо заморачиваться
001-a-1912-sf05.pfs 
Появится 001-a-1912-sf06.pfs и автообновится
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 22 Март 2020, 12:14:18
То есть нужно ещё вот эти "sf06" сравнивать?
Звиздец :(
Зайдем с другой стороны
555-firefox-12.3.5-1912-sf01.pfs
555-firefox-lts-12.3.5-1912-sf01.pfs
555-firefox-12.3.5-2-1912-sf01.pfs
555-firefox-12.3.5-1912-sf02.pfs
555-firefox-12.3.5-1912-bc03.pfs
555-firefox-lst-12.3.5r4-gf300rt-1912-sf01.pfs
Вот и че делать? Ну ладно файрфокс-лтс это другой пакет. А с остальными как быть? Может уже по дате :)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 22 Март 2020, 12:28:51
че делать?
Передрать у ander
Может уже по дате
Можно и так
Я пока не понял итогового замысла
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: krasnyh от 22 Март 2020, 12:29:06
Это имя сборщика модуля. Цифра говорит об исправлениях, т.е. если sf06, то предыдущие sf01...sf05 должны быть удалены. И в этом случае этот код не должен мешать.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 22 Март 2020, 13:45:33
Передрать у ander
Там тоже не 100%
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: DdShurick от 22 Март 2020, 14:22:22
 Надо с этой "кашей" что-то делать. Пожалуй проще переименовать все модули по стандарту, чем так мучиться.
1) отказаться от префикса 0??-
2) <имя>-<версия>
3) дальше как угодно, не имеет значения.
Тогда получится легко и просто: grep <имя> и сравниваем версии.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 22 Март 2020, 17:07:16
Для себя вопрос закрыл. Если pfsget планируем в pfs-utils, то мы не можен навязывать правила для именования модулей. По этому ориентируемся на списки.
Пока пробую такую схему. Список состоит из произвольного количества колонок. Первая колонка имя с путем, дальше как дистростроителю хочется. Но сортировка идет от второй колонки. Во второй колонке основной параметр для сортировки и он должен быть цифровой и в одинаковом формате. В случае ваших мутных схем это только дата :).  Пробую такой вариант:
протокол:://путь/имя  ДАТА версия РЕВИЗИЯ
Пример:
http://127.0.0.1:8000/mpv-light-0.30.0-1912-sf01.pfs 2020-02-17 0.30.0 sf01
Если найдутся два модуля с одинаковым именем, то новее тот, у которого новее дата.
Если совпадают имя и дата, то новее тот, что имеет большую версию,
Если совпадает все, то смотрим ревизию.
Не идеально ибо у вас в версии могут быть и буквы и цифры, как все это разрулить на 100% не знаю. Но этого может и не нужно.

При построении такого списка для локальной папки выглядеть будет так:
/путь/mpv-light-0.30.0-1912-sf01.pfs 2020-02-17 0 0
То есть при прочих равных локальный модуль будет считаться старее своего однофамильца с сервера  :)

Это пока мысли. В коде пока только общие наметки. Показать?

Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 22 Март 2020, 18:43:50
Пожалуй проще переименовать все модули по стандарту, чем так мучиться.
Если серьёзно обсуждать то пожалуй вроде такого:
045_firefox-lts-62.4-3_023-09sf-x64-1912-чеугодно.pfs
045 префикс, нижнее подчеркивание - разделитель. Далеше идёт имя программы с её версией или без, снова разделитель и версия модуля. Версия модуля обязательно имеет две части это трехзначный номер версии дефис двузначный номер ревизии. Дальше необязательная часть, которая на сортировку уже не влияет.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: DdShurick от 22 Март 2020, 18:51:05
префикс
Сколько можно говорить, что не нужен префикс. База - псевдомонолит, в неё входит не так уж много модулей. В modules и optional тем более префикс не нужен.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 22 Март 2020, 19:04:04
Без префикса будет ещё проще.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 09:49:20
Если pfsget планируем в pfs-utils, то мы не можен навязывать правила для именования модулей.
Хорошо бы. Но тогда получится только :
Юзер ввел маску - получил список  модулей с датой и размером (а хорошо бы и с зависимостями)
Выбрал интерактивно - загрузилось , подключилось
По сути в sfs-get так и сделано
Т.е. не запаривайтесь сильно. Модули - не пакеты. Здесь не так строго

Лучше про зависимости подумать. без этого вообще теряется смысл ММ

Стандарты названий только для обновлятора, который "работает - не трогай".
Если переделывать  - стандартитзировать вход и выход отдельного скрипта. Кому надо под свое - доковыряют сами
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 10:31:20
Первые наметки тут:
https://github.com/pfs-utils/pfs-utils-cli/tree/pfsget/pfsget
Нужна вся папочка, пока все настроено на работу прямо из нее.
./pfsget -s firefox     #Найти файрфокс. только найти
./pfsget  firefox        #Найти файрфокс. качнуть в текущую папку
./pfsget -u               #Обновить списки по mirror.list (удаленные списки, локальные списки, локальные папки)
./pfsget -u -l firefox #Обновить списки, скачать в текущую папку, подключить
./pfsget -i firefox      #Установить, то есть скачать в модулес и подключить
./pfsget -l -f firefox  #Скачть и подключить с автовыбором без вопросов
Для гуя может быть такая комбинация:
./pfsget -s firefox
Получаем список всего что найденно, и то что предполагается наиболее свежим.
Дальше юзер выбирает что надо и:
./pfsget -f  "то_что_выбрал_с_путями"

В коде бардак и дохрена комментов, смотрите сами. Работаю в магос, у вас может не оказаться какой то утилитки.
Посмотрите как работает нечеткий поиск. Для примера введите:
./pfsget ie

Если в систему установить agrep, то будет работать и с минимальными ошибками, т.е.
./pfsget -s баузер
или
./pfsget -s броузер
Поймет, что имелся ввиду "браузер" и предложит варианты.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 10:37:20
Сейчас далал список для репы portable. Пришлось почти вручную все перебирать. Даже не рассказывайте мне больше о "стандартных именах", там ИИ надо чтоб разобрать :). Час убил наверное. С этими списками будет не просто. Хорошо бы их создавать скриптом после каждого изменения репы, но нужны более четкие стандарты для именования. Тут я с DdShurick соглашусь. Как говорили в известном мультике: "Лучше день потерять,  потом за 5 минут долететь".
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 10:52:47
Для гуя может быть такая комбинация:
Простые диалоги легко сделать на моем ntf. В том числе выбор из списка
У ntf в зависимостях gtkdialog и yad (есть gtk2 и 3)
создавать скриптом после каждого изменения репы
Без проблем - какой формат?
нужны более четкие стандарты для именования
Готов переименовывать свою репу только по итогу получения результата, лучше чем у меня
Пока так и не понял - что будет на выходе
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 10:59:39
Без проблем - какой формат?
https://github.com/pfs-utils/pfs-utils-cli/blob/pfsget/pfsget/httprepolist.lst
Как тут.
имя с путем ПРОБЕЛ дата ПРОБЕЛ версия ПРОБЕЛ ревизия
Если что-то отсутствует ставим 0, кроме даты. Там обязательно что-то должно быть в формате %F
Если получится у Вас скрипт при текущих именах, то тогда можно не запариваться с переименованиями. Проверять лучше на portable, там вариантов имен больше. И без версии и без ревизии....
Если нужны еще поля, добавляем дальше через пробел.

Простые диалоги легко сделать на моем ntf. В том числе выбор из списка
Конечно, сделать можно как угодно.


Пока так и не понял - что будет на выходе
На выходе консольная качалка модулей из реп, Без привязки к прар, гуям и проч. На счет зависимостей надо думать, пока не знаю как это может выглядеть.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 11:01:34
Готов переименовывать свою репу только по итогу получения результата, лучше чем у меня
Как минимум имена кторые легко парсить. Только формат заренее продумать.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 11:11:03
https://github.com/pfs-utils/pfs-utils-cli/blob/pfsget/pfsget/httprepolist.lst
Надо еще размер
На счет зависимостей надо думать, пока не знаю как это может выглядеть.
Как список без версии
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 11:13:25
А размер?
Забыл про него. Добавлю, добавлять  не сложно.
Как список без версии
Я не об этом. Список зависимосте же внутри модуля. Пока не качнешь не узнаешь.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 11:23:18
Забыл про него. Добавлю, добавлять  не сложно.
Добавил. Там сколько колонок проименуете столько и будет работать. Колонки можно не указывать в списке начиная с хвоста, на работоспособность не повлияет.
То есть без размера, без размера и ревизии, без размера ревизии и версии - можно.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 11:30:13
Список зависимосте же внутри модуля. Пока не качнешь не узнаешь.
Можно формировать при обновлении репы
Например отдельным файлом (так же - 1 файл в корне репы)
имя_модуля.pfs завис1 завис2 ...
Добавил
Не вижу изменения https://github.com/pfs-utils/pfs-utils-cli/blob/pfsget/pfsget/httprepolist.lst

Чтобы не ковырять код - наверное есть конвертер ls -l в httprepolist.lst
Или как вы его формируете
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 11:32:07
Не вижу изменения
В код добавил.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 11:33:53
Чтобы не ковырять код - наверное есть конвертер ls -l в httprepolist.lst
И его удобнее _httprepolist.lst назвать - чтобы в начале был
И http - убрать. Может и атп быть
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 11:34:11
Можно формировать при обновлении репы
Например отдельным файлом (так же - 1 файл в корне репы)
имя_модуля.pfs завис1 завис2 ...
Да. Это вариант. Надо подумать. Возможно такой файл удобнее будет делать для каждого модуля, В нем описание, зависимости, еще что-то. Но чтоб без этого файла тоже работало, для простых модулей.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 11:35:12
И его удобнее _httprepolist.lst назвать - чтобы в начале был
И http - убрать. Может и атп быть
Названия чисто для меня сделаны. _REPOLIST например можно.
З.Ы. Видели, кстати, что gz тоже можно?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 11:36:51
_REPOLIST например можно.
ок
Чтобы не ковырять код - наверное есть конвертер ls -l в httprepolist.lst
Есть код или самому писать?
размер - в какое по счету поле?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 11:38:45
Есть код или самому писать?
Кода нет. Говорю же там жесть с именами. Заменял sid -i по списку по частям. Пути добавил, затем одинаковую дату, версию 0 и sf01. Остальное руками.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 11:39:24
размер - в какое по счету поле?
Последнее. 2,3,4 участвуют в сортировке 5 и далее уже нет.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 11:48:07
Вот как можно. Шестое, не обязательное поле это  путь/файл c описанием и зависимостями. Если таковой  есть, то после подтверждения выбора модуля мы этот файл качаем, парсим, показываем список зависимостей и после подтверждения ставим их все. Просто запуская после установки модуля pfsget -f список зависимостей (забыл сказать, что списки он тоже умеет). Если у какой то из зависимостей есть своя зависимость, то произойдет тоже самое, то есть запуск pfsget -f список, после установки.
Понятно описал?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 12:19:10
путь/файл
многовато файлов будет. лучше в 1  : 1 модуль - 1 строка
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 12:33:53
многовато файлов будет. лучше в 1  : 1 модуль - 1 строка
А описание?
А если строка то как ее искать. По имени модуля? По имени модуля с версией? Как имя и версию надежно вытащить из полного имени?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 12:53:24
А если строка то как ее искать. По имени модуля?
да

Код
ls -oh --time-style=+%Y-%m-%d "$d" |awk '{print "'$w'/'$d'/"$6" "$5" 0 sf01 "$4}' >"$r"/"$d"/_REPOLIST
_REPOLIST (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/_REPOLIST) - норм?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 13:05:46
_REPOLIST - норм?
Вместо версии везде 0? А ревизия sf01?
Работать то будут, но где разница только в ревизии выбор будет не правильным.
таймстайл можно %F
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 13:13:08
    А если строка то как ее искать. По имени модуля?

да
Все же с  отдельным файлом будет удобнее. Один файл на несколько модулей. А там версия сменилась и все пиши новую строку. И вообще у вас же явно не каждый модуль будет зависимости иметь. А штук 10 файлов можно и  в отдельную папочку в той же репе сложить.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 13:20:40
Вместо версии везде 0? А ревизия sf01?
Потом доделаем, если приживется
Все же с  отдельным файлом будет удобнее. Один файл на несколько модулей. А там версия сменилась и все пиши новую строку
Думал - эта инфа в модуле и извлекается оттуда при пересоздании
Это все тоже лучше потом
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 13:24:19
Запушил с зависимостями. Проверял только на локальных спиcках, но качались модули с реп.
Зависимости у модуля vlk (отбалды). Файл с зависимостями vlk.req, Прописан в шестой колонке у модуля vlk в httprepolist.lst. Путь локальный, для реп нужно писать полный http://bla-bla/vlk.req
В файле разбираются только строки начинающиеся с req:, все остальное можно использовать для любого текста который можно выводить при установке.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 13:26:27
Потом доделаем, если приживется
Ок, так можно. Или мой взять и дописать в него размеры.

Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 15:44:47
Есть ещё вариант скачивать модуль и проверять звисимости в самом модуле. А дальше по той же схеме перезарускать pfsget -f список зависимостей. Тогда доп файлы не нужны
Потом нужно проверять может зависимость уже есть и качать не нужно. Если делать прям идеально то мы незаметно изобретем новый пакман. Надо прикинуть до какой степени мы готовы в тему зависимостей лезть..
Там уж точно нужно будет менять имена чтоб разбирались имена и версии.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 15:59:55
скачивать модуль и проверять звисимости в самом модуле
У меня так сейчас и сделано. После подключения предлагает подключить зависимости
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 16:02:54
У меня так сейчас и сделано. После подключения предлагает подключить зависимости
Давайте так и сделаем тогда. Получаем список зависимостей. Грепаем их в ауфс-н и в папке куда скачиваются модули. Если не найден, то качаем. И так по кругу.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 16:47:30
В каком из модулей в репах есть зависимости?
https://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/chromium-bin-gtk3-p-79.0.3945.130_64-sf01.pfs
В корне модуля start.sh который просто выпролняется
В этом зависимости с условиями.
Обычно просто sfs-get-dep зависимость.pfs
Больше 3х зависимостей не припомню. Обычно одна и та ТК
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 16:55:44
Не понял. То есть тут их не будет?
 pfsinfo -s МОДУЛЬ  |grep ^Dependenses
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: krasnyh от 23 Март 2020, 16:59:14
Код
 ..chromium-bin-gtk3-p-79.0.3945.130_64-sf01.pfs % cat start.sh 
#!/bin/sh
[ "`uname -m`" = i686 ] && sfs-get-dep Gtk3 || sfs-get-dep 030-gtk3
#[ -f /usr/lib/*/libnss3.so ] ||
[ "`find /usr/ -maxdepth 2 -type f -name libnss3.so`" ] || sfs-get-dep nss-%   

А в mesa чисто информационный start.sh:
Код
 ..ory/images/mesa-19.2.4-1-1912-sf04.pfs % cat start.sh
ntf -q "После горячего подключения mesa" "требуется перезагрузка Х-сервера
Перезагрузить?" && sfs-shutdown%     
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 17:03:17
Не, из start.sh зависимости доставать это как-то не правильно. Зачем тогда тут строчка Dependenses?:
MagOS Загрузки # pfsinfo -s chromium-bin-gtk3-p-79.0.3945.130_64-sf01.pfs
Compression algorithm: xz
Module size: 69368
Uncompressed size: 227935
Compression ratio: 3.28, (30.43%)
Packages: -----
Dependenses:  -----

start.sh будет работать независимо от getpfs и пусть так и будет. Мы же о зависимостях записаных либо в модуль либо в отдельный файл. Как в итоге делать то?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 23 Март 2020, 17:24:59
pfsinfo -s МОДУЛЬ  |grep ^Dependenses
Этот стандарт был продекларирован и на этом все кончилось. Поэтому я прикрутил свой костыль с зависимостями. Что "сделано красиво " никогда не говорил, но работает
Делайте через Dependenses
Если что я циклом прочитаю и вставлю в sfs-get-dep
А в mesa чисто информационный start.sh:
да
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 17:27:07
Делайте через Dependenses
Ок.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 19:01:40
Делайте через Dependenses
Готово. Самое сложное сделать модуль с такими зависимостями. У нас этот момент вообще не продуман.
Надо для тестов на сервер залить _REPOLIST. Мешать же не будет я думаю. И какой нибудь модуль с зависимостями. Можно фейковый. В идеале чтоб модули которые у него в зависимостях тоже зависимости имели. И добавить его и зависимости в реполист.
З.Ы. _REPOLIST можно пожать gz.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: DdShurick от 23 Март 2020, 20:08:54
_REPOLIST.
??
Код
bash-4.4# mount -o remount,append:curlftpfs-0.9.2/ /
bash-4.4# mkdir /mnt/repo
bash-4.4# curlftpfs ftp://mirror.yandex.ru/puppyrus/ /mnt/repo
bash-4.4# find /mnt/repo ! -type d
И пошло - поехало...
В идеале чтоб модули которые у него в зависимостях тоже зависимости имели.
ffmpeg от слаки
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 23 Март 2020, 20:21:02
И пошло - поехало
Почитайте выше, там не просто список файлов.
ffmpeg от слаки
Нужен модуль, у которого есть зависимость, у которой тоже есть зависимость. Для тестов. Как здесь поможет ффмпег?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: DdShurick от 23 Март 2020, 20:48:54
Как здесь поможет ффмпег?
Как раз то, что вы хотели. Куча зависимостей, которые тянут свои зависимости.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 09:07:58
_REPOLIST можно пожать gz.
_REPOLIST.gz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/_REPOLIST.gz)
curlftpfs ftp://mirror.yandex.ru/puppyrus/ /mnt/repo
Монтировать плохо на уровне идеи
Последнее время фтп яндекса глючит. А если только http
И вообще по моему опыту все примонтированнгое из инета глючит и тормозит

чтоб модули которые у него в зависимостях тоже зависимости имели.
smplayer - mpv-light - ffmpeg
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 09:18:05
smplayer - mpv-light - ffmpeg

Любой пример, можно и этот, можно вообще фейковый, но нужно, чтоб зависимости отображались в Dependenses у pfsinfo.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 09:23:51
нужно, чтоб зависимости отображались в Dependenses у pfsinfo.
Что в какой файл прописать и в каком виде?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 09:33:53
Рядом с pfs.spec, файл называется pfs.depends, там по зависимости на строку.
Проблема в том, что у нас сейчас в атомарных модулях нет спеков. Пришлось собирать с --mklist, распаковывать добавлять файл с зависимостями и запаковывать снова. Надо думать как упростить.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 09:35:10
Точное имя файла лучше подглянуть в pfsinfo. Могу путать, с телефона пишу.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 09:35:29
по зависимости на строку.
достаточно маски или нужно полное название модуля .pfs ?
Пришлось собирать с --mklist, распаковывать добавлять файл
Выложите фэйковые сюда - переложу в репу
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 09:50:56
1.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/1.pfs)
2.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/2.pfs)
3.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/3.pfs)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: DdShurick от 24 Март 2020, 09:56:10
 Не понимаю, зачем в _REPOLIST писать полный путь? Вот это "http://mirror.yandex.ru/puppyrus/puppyrus-a64" можно вынести "за скобки".
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 09:59:48
достаточно маски или нужно полное название модуля .pfs
Можно маску, но чтоб по ней лишнее не словилось. Поиск у меня везде с grep -w, то есть слово целиком.
firefo не найдёт, только firefox. Иначе при коротких именах можно словить много лишнего.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 10:02:09
Не понимаю, зачем в _REPOLIST писать полный путь? Вот это
Пути могут быть разными. Лист может лежать на другом сервере или находиться в сборке, а в нем список файлов и у каждого свой путь.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 10:02:51
зачем в _REPOLIST писать полный путь? Вот это "http://mirror.yandex.ru/puppyrus/puppyrus-a64" можно вынести "за скобки".
Да. Если будут зеркала так удобнее. Переделать?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 10:04:00
1.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/1.pfs)
2.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/2.pfs)
3.pfs (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/3.pfs)
Посмотрю с компа. Но имена не удачные, кмк. Как потом искать модули 2 и 3 в репе ;)

Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 10:04:59
у каждого свой путь
Только начало пути - дальше одинаково
Вот эти начала и хранить отдельным списком
Вряд ли кто на зеркале заморочится пересозданием _REPOLIST со своими именами
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 10:05:23
Да. Если будут зеркала так удобнее. Переделать?

На счёт зеркал надо думать. Не учел.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 10:06:35
имена не удачные, кмк. Как потом искать модули 2 и 3 в репе
Думаю здесь маски неуместны. Искать ТОЛЬКО по полному совпадению всего названия
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 10:18:42
Думаю здесь маски неуместны. Искать ТОЛЬКО по полному совпадению всего названия
Так надёжно, но не очень удобно. При обновлении  версии модуля нужно будет пересобирать все модули у которых он в зависимостях.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 10:22:02
Сложный вопрос
Разные версии , например ffmpeg подойдут не ко всем mpv
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 10:33:39
Сложный вопрос
Разные версии , например ffmpeg подойдут не ко всем mpv
Значит нужно, чтоб работало ffmpeg-[4-9].*
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 10:59:44
Думаю - надо не париться и делать по полной маске. Поюзать так - дальше видно будет
Репа модулей не такая большая как репа пакетов. Можно и поправить зависимости
Максимум - без последней секции - автор версия автора (-sf01.pfs). И брать последнюю
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 11:16:56
Однако придумал как скрестить реполисты с зеркалами. Для модулей которые лежат там же где реполист (или в подпапках), а значит зеркалируются. Заменяем путь специальной меткой, а при разборе реполиста метка заменяется путём до самого реполиста. Так будут работать оба подхода и при зеркалировании никаких дополнительных действий не потребуется. Метка может быть например mirror://
 
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 11:24:30
Не проще
http://mirror.yandex.ru/puppyrus
и прочие списки зеркал хранить в списке зеркал

puppyrus-a64/pfs-portable/005-xorg-1.17.4-2_64-s03.pfs 2018-03-19 0 sf01 3,6M
Оставить в _REPOLIST
Переделать?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 11:35:42
Мы наверное опять о разном :(
Я совсем не о списках зеркал, я о реполисте. Попробую на примере. В реполисте могут быть записи таких типов.
/home/live/repo/056-prog-4666-sf01.pfs 2020-01-01 33 sf01 4M это локальный модуль
http://mirror.yandex.ru/puppyrus/056... Это с конкретным путём

А теперь то, что предлагаю добавить.
mirror://056....
В этом случае миррор:// при разборе будет заменен на путь который ведет до самого REPOLIST. То есть реполист всегда лежит в корне репы и путь до него используем как путь до модулей в репе. Конечно только тех где путь указан как mirror://
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 11:37:39
То есть в случае ваших реп все модули будут иметь путь mirror://имя-модуля
В  _REPOLIST
Понятна идея?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 12:42:09
Поправился. Вот так.
mirror:// - лишняя деталь. В остальном то же

http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable
/home/live/repo
и прочие списки зеркал хранить в списке зеркал

005-xorg-1.17.4-2_64-s03.pfs 2018-03-19 0 sf01 3,6M
Оставить в _REPOLIST
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 13:17:23
Поправился. Вот так.
mirror:// - лишняя деталь. В остальном то же
Не лишняя. Если убрать то мы лишимся возможности делать собственные списки и прописывать там модули с разных серверов.
Не обязательно именно mirror:// это может быть любая метка. Ну например:
<==>/089-/bla-bla...
Если метки нет, то это локальный файл.
Можно впринципе по слэшу перед именем ориентироваться,  но запутаться можно.
Про 005-xorg не понимаю вопрос.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 13:43:07
005-xorg-1.17.4-2_64-s03.pfs 2018-03-19 0 sf01 3,6M
Оставить в _REPOLIST
Имел ввиду , что в списки только названия модулей без путей
Если убрать то мы лишимся возможности делать собственные списки и прописывать там модули с разных серверов.
Это будет реже. У меня вообще не прижилось
Вот там и прописывать полные пути, а различать по http:// ftp:// в начале
Чем плохо?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 13:46:38
Вот там и прописывать полные пути, а различать по http:// ftp:// в начале
Чем плохо?
Ещё могут быть локальные файлы. Можно по идее наоборот их помечать как file://
Как оставим?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 13:58:59
помечать как file://
Может file:
ок
Как оставим?
egrep '^http:|^ftp:|^file:'
В прочихслучаях подставляем путь из списка реп
Пересоздал _REPOLIST.gz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/_REPOLIST.gz)
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 14:08:16
Ок. Оставляем так. Для протоколов только более общую маску сделаю. Может ещё добавим что-то.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 14:19:34
ок
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 15:48:28
Запушил с измененным форматом реполиста. Можно пробовать.
У меня не срабатывает загрузка зависимости 2, потому что он грепается в выхлопе aufs-n в имени магосовсого модуля. В версии точнее:
 aufs-n --raw '$bname_source' |grep -w 2
flash-plugin-11.2.202.521-2014.64.xzm
Двойка между точками. На нее grep -w срабатывает.  То есть pfsget думает, что пакет установлен :) Если имя было бы позаковыристей думаю сработало бы.

Забираем всю папочку и запускаем из нее. В систему не гадит, все внутри папочки будет (За исключнием ключа -i).
Инструкция тут: http://forum.puppyrus.org/index.php?topic=13419.msg168267#msg168267

Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 16:47:31
Работает (нашел и скачал)
При поиске ругался на gz - см .скрин
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 16:57:24
При поиске ругался на gz - см .скрин
Попробуйте zcat _REPOLIST.
Если что можно это выкинуть. Не велика экономия на списках в сотню строк.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 17:05:22
При поиске ругался на gz - см .скрин
Мне кажется не прочитался  _REPOLIST, а а firefox установился по ./local.lst
Должно так быть:
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 17:15:09
Проверьте в .../pfsget/pfsget_work_dir/lists второй список.
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 17:23:25
нашел и скачал
Как то иначе выкладывать?
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: sfs от 24 Март 2020, 17:48:45
Попробуйте zcat _REPOLIST.
работает
Проверьте в .../pfsget/pfsget_work_dir/lists второй список.
есть
Как то иначе выкладывать?
В таком виде вряд ли юзерам будет интересно
Опытные и так поймут
Название: Re: pfs-get - менеджер модулей.pfs .sfs
Отправлено: betcher от 24 Март 2020, 18:02:15
Не знаю тогда на что ругается. Попробую завтра сам в прар.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 25 Март 2020, 09:46:57
Разделил на 2 темы - консоль и гуй, перенес в пфс
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 25 Март 2020, 19:47:45
Обновил. Добавлена возможность устанавливать локальные модули с зависимостями из реп. Убрал отдельный read запрос в случае когда модуль найден в aufs-n.
В папку добавлены mkpfs и pfs с изменениями для записи зависимостей в модуль. Работает также из папки, устанавливать в систему не надо.
mkpfs ./папка --depends req1,req2,req3

Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 26 Март 2020, 09:45:22
устанавливать локальные модули
В смысле - подключать (к aufs ?) или распаковывать в корень (у нас , вроде это имелось всегда ввиду под установкой)
mkpfs ./папка --depends req1,req2,req3
Т.е. просто прописывает перечисленные зависимости в конфиг?
А если модуль составной и в нем уже есть разные зависимости  для каждого подмодуля?
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 26 Март 2020, 10:50:34
устанавливать локальные
В первую очередь это скачать зависимости. Остальное зависит от ключей. Работает так будто это модуль найденный в репе то есть.
А если модуль составной и в нем уже есть разные зависимости  для каждого подмодуля?
Пфсинфо вернет общий список. Между списками из разных модулей будет пробел, а не запятая. Но для гетпфс это не важно. Повторяющиеся зависимости тоже не помешают, решение качать или нет принимается всякий раз на основе поиска зависимости в ауфс-н и папке куда качаются модули.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 27 Март 2020, 14:39:11
Проверяю в прар. Не работают зависимости. Оказалось в pfsinfo то что раньше выводилось со строчкой Dependenses: , теперь почему-то Includes submodules: Что Вы имели ввиду этой правкой? Там же зависимости.
Это я правил, до того, как Вы добавили Dependenses
В моих дистрах до сих пор в.3. Поэтому тестировать надо на в4 из гита
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 27 Март 2020, 14:57:41
В моих дистрах до сих пор в.3.
Именно пфсинфо новый. Новей чем в магос :) Надо вернуть Dependenses,
Includes submodules:
не соответствует смыслу. Там список именно из файлов pfs.depends.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 28 Март 2020, 13:30:36
Еще немного поправил. Pfsinfo пока исправленный внес в эту же папку, потом нормально сделаем.
Пробуйте. У меня вроде нормально работает.
Предлагаю подумать на счет файлика для поиска, когда не находит в репе. Выглядеть должен примерно так:
Код
browser браузер броузер ie opera опера мидори палемун интернет 
_browser midory firefox palemoon

files-manager ФМ fm файлы files far
_files-manager pcmanfm-qt krusader dolphin


На каждую секцию две строки. В первой строке пишем то, что может искать юзер.
Во второй строке пишем что у нас есть в репе. Первое слово - метка, по нему ищется вторая строка и оно должно максимально характеризовать секцию по смыслу.

Для тех кто хочет попробовать но не знает как достать из гит ветки. Вот: https://yadi.sk/d/Zxtaq6GVfy2g5g
Распаковать и запускать из папочки. Удаленная репа - portable, локальная 1912, если у вас не prar1912 то локальную репу надо закомментарить в mirror.lst
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 02 Апрель 2020, 10:08:38
Здесь интереса тоже похоже нет. Скачиваний - 0 :) В итоге. Все же  панирую добавить возможность работы с репами без реполистов и  расписать файл с подсказками. После останется только определиться с расположением конфигов и добавить pfsget в основную гитрепу pfs-utils, если конечно никто не против.
Будут мысли, давайте их сюда :)
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 02 Апрель 2020, 10:36:37
Здесь интереса тоже похоже нет
Я еще и на в4 не перешел. "Работает не трогай" . Отличий мало и они у меня не особо востребованы, а остальные вообще перестали делать модули
Меня сейчас твбоксы вдохновляют. Перспективная вещь
добавить возможность работы с репами без реполистов
Как отвязаться от особенностей конкретных ftp \http?
добавить pfsget в основную гитрепу pfs-utils, если конечно никто не против.
Я не против.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 02 Апрель 2020, 10:41:05
Как отвязаться от особенностей конкретных ftp \http?
Думаю что никак. Для особенных есть _REPOLIST. Это как дополнительная возможность.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 02 Апрель 2020, 10:44:41
Чем _REPOLIST. не устраивает? Наоборот самое ценное из последнего
Генерится проще, чем потом парсить
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 02 Апрель 2020, 10:50:08
Чем _REPOLIST. не устраивает? Наоборот самое ценное из последнего
Генерится проще, чем потом парсить
Устраивает. Это и должен быть правильный способ. Но хочу чтоб работало и с папкой тоже. Чтобы было :)
Имел ввиду, что из папки это дополнительная возможность. А РЕПОЛИСТ - основной.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 02 Апрель 2020, 11:11:45
из папки это дополнительная возможность
C фтп там просто - см. выше. Но на яндексе он сейчас глючит
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 12 Май 2020, 11:35:30
Есть еще идейка. Мы можем добавить к каждой строке в _REPOLIST контрольную сумму для модуля. Например md5. И после скачивания проверять целостность.
Можно пойти дальше и сам _REPOLIST подписать. То есть скачивается реполист, проверяется подпись ключами которые уже есть в системе и дальше либо выход с ошибкой либо предупреждение, что подписано левым ключем. То что контрольная сумма модуля совпадет с контрольной суммой записанной для него в РЕПОЛИСТе, который в свою очередь подписан по идее гарантирует, что модуль не был подменен.
Просто идеи пока. Над подробностями надо думать.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 12 Май 2020, 11:52:37
Мы можем добавить к каждой строке в _REPOLIST контрольную сумму для модуля.
Без проблем. Только при нынешнем качестве инета есть ли проблема целостности...
сам _REPOLIST подписать.
gpg? Я для ПМ его специально выпиливал. Если делать - отключаемым, а в дистр отдельным модулем для параноиков
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 12 Май 2020, 11:55:08
Да, скорее всего gpg. При отсутствии gpg можно просто отключать проверку например. Или отключать ее в конфиге.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 12 Май 2020, 11:57:14
Только при нынешнем качестве инета есть ли проблема целостности...
При записи на невполне здоровую флешку вполне возможны ошибки.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 12 Май 2020, 12:00:14
Мы можем добавить к каждой строке в _REPOLIST контрольную сумму для модуля.
Наверное надо будет писать генератор для реполиста еще. И опять упремся в имена модулей :(
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 12 Май 2020, 12:55:40
надо будет писать генератор для реполиста
да. выше вроде уже была заготовка без md5
упремся в имена модулей
генератору то какая разница. Ему же не искать по именам
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 12 Май 2020, 13:03:51
генератору то какая разница. Ему же не искать по именам
Оделять версию от имени пакета. Все что и было. Контрольные суммы тут проблем не добавят.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 12 Май 2020, 13:12:30
сделать отдельным скриптом - каждый под свое подправит
Я думаю надо сделать так чтоб генератор реполиста пытался парсить по жестким правилам имена. Если имя удовлетворяет правилам, то заполняются все поля. Если нет то имя, размер и дата модификации. Так постепенно новые модули с "правильными именами" вытеснят старые. Только надо эти самые правла придумать еще.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 12 Май 2020, 13:17:44
Возможно имеет смысл в самом реполисте не по полям разделять, а например так:
http://server.ru/folder/mod.pfs SIZE=1024 VER=12.5 MD5=871efobr928734f13bc 
Так будет проще в случае разного количества переменных для каждой строки.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 12 Май 2020, 16:30:58
в самом реполисте не по полям разделять, а например так:
да
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 15 Май 2020, 11:41:42
Сделал подпись, проверку мд5 и новый формат реполиста. Все изменения в гит.
Генератор реполиста будет встроен в pfsget. Все равно этот код нужен для того чтоб указывать папки в качестве репы.
pfsget --mkrepolist папка
Сделает папка/_REPOLIST.gz и в случае если настроен gpg2 еще и папка/_REPOLIST.gz.sig
При загрузке проверяется подпись (публичные ключи должны лежать в /etc/pfsget/  с расширением .gpg)

Нужно решить с форматом имен модулей. Сейчас там просто заготовка типа:

for a in $(find $reponame -maxdepth 2 -type f -name *.$EXT) ; do
      DATE='' ; SIZE='' ; VER='' ; REV='' ; MD5=''
      DATE=$(ls -la $a --time-style=+%F |cut -d " " -f6)
      SIZE=$(du -h $a |cut -f1)
      VER=
      REV=
      MD5=$(md5sum $a |awk '{print $1}')
      echo "$a VER=$VER REV=$REV DATE=$DATE SIZE=$SIZE MD5=$MD5 " >> $REPOLIST
done
Нужно чтоб парсер заполнил все переменные если смог, и присвоил пустое значение (или 0) если не смог. То есть по задумке работать будет с любыми именами, но корректно сортировать по версии, ревизии только для "правильного" формата, который и предлагаю обсудить.
 
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 15 Май 2020, 12:39:51
"правильного" формата, который и предлагаю обсудить.
вики (http://wiki.puppyrus.org/puppyrus/pfs?s[#%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D1%8B_%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%B9)
Модуль начинается с заглавной буквы: составной модуль (можно разобрать pfsextract) - не прижилось
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: DdShurick от 15 Май 2020, 12:46:34
не прижилось
Хреново :(
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 15 Май 2020, 13:12:13
Хреново :(
А смысл? http://wiki.puppyrus.org/puppyrus/pr218/pfs4#pfsextract сам с этим разберется
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 22 Май 2020, 12:40:21
Раз вы так держитесь за свои имена модулей, пусть у каждого будут свои. Магосовские тоже, кстати, не удобные по тому и думал предложить единый формат.
В итоге вынес определение версии и ревизии в отдельные функции, которые получают имя модуля и возвращают версию (по умолчанию просто возвращают нули). Эти функции нужно переопределять в /etc/pfs.cfg под себя, ну или не трогать если сортировка только по дате устраивает.
Код
getVER() {
echo 00.00
}
getREV() {
echo 00


З.Ы. На счет ревизии у вас тоже немного не удобно, допустим есть модуль bla-bla-1.1-dd00.pfs, Sfs его правит и меняет ревизию на bla-bla-1.1-sf01.pfs. Только сортировка будет не по цифрам 00/01, а по буквам dd/sf что не правильно. Надо было делать 00dd, 01sf тогда бы сортировало как надо. 
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 22 Май 2020, 12:54:17
Для подписи реполиста нужен gpg2. Ключи делаются так:
gpg2 --generate-key
После надо ответить на вопросы. В случае если установлен gpg2 и сгененрированы ключи у пользователя под которым делаете REPOLIST.
Этот самый реполист будет подписан автоматически. Если нет, то без подписи.
Для того чтоб проверялась подпись, у юзверей должен быть Ваш публичный ключ pubring.gpg. Ключ ищите в ~/.gnupg/  после генерации ключей. Его кладем в /etc/pfsget/ всем пользователям.

P.S. Sfs пересоберите пожалуйста наш тестовый реполист в новом формате, чтоб нормально проверить. Желательно подписанный, ключ просто здесь выложите. Я предполагаю работу с репой так. Локальная папка с модулями, запускаете pfsget --mkrepolist /путь/папка, создается новый реполист и  подпись. После синкаете всю папку на сервер. Теоретически должно сработать и в смонтированнной RW с сервера папке, тогда синкать не нужно.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 27 Май 2020, 11:55:30
gpg2 --generate-key
# gpg2 --generate-key
gpg: недопустимый параметр "--generate-key"
пересоберите пожалуйста наш тестовый реполист
_REPOLIST.gz (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/_REPOLIST.gz)
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 27 Май 2020, 16:07:42
Ок, спасибо. Посмотрю что с gpg, видимо с версиями что-то.
# gpg --gen-key
gpg (GnuPG) 1.4.20;
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 28 Май 2020, 05:06:53
 $ gpg --version
gpg (GnuPG) 1.4.23

 $ gpg2 --version
gpg (GnuPG) 2.2.17-unknown
libgcrypt 1.8.5
NOTE: THIS IS A DEVELOPMENT VERSION!

Переписать на gpg?
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 18 Сентябрь 2020, 11:44:41
Прикидываю как добавить режим обновления модуля в pfsget. И снова уперся в названия. К примеру в репе находится несколько файрфоксов
firefox-ru
firefox-lite
firefox-77
И так далее. Как при достаточно вольном именовании модулей не напороться на ситуацию, когда при обновлении firefox-77 будет заменен на firefox-ru только потому, что тот свежее. Как у вас сейчас работает?

Есть альтернативная мысль. А что если хранить нужные значения (имя, версия пакета, версия модуля, ревизия и проч.) не в названии модуля, а внутри модуля. Логичным кажется что-то вроде pfs.spec, но не понятно как быть с контейнерами. Там может оказаться много спеков. Соответственно при обновлении репы данные читаются из спеков и записываются в _REPOLIST. Конечно все это касается только модулей которые распространяются через репозитории. То есть спек не обязателен.

Хранение и получение этой информации - реальная проблема, давайте уже придем к общему знаменателю. Так чтобы работало то что есть сейчас и можно было при этом развивать функционал pfsget.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 18 Сентябрь 2020, 12:33:50
Как у вас сейчас работает?
Там хитрый (не мой) код, который разбирает только названия
что если хранить нужные значения (имя, версия пакета, версия модуля, ревизия и проч.) не в названии модуля,
т.к. можно быстро его пимонтировать и посмотреть эту инфу - может быть
Но все равно надо будет мутитьт какие-то индексные файлы, чтобы каждый раз не перечитывать

Тут надо начать с начала проблемы
На выходе нужен легкий гуй. Консольный - неудобно подключать-отключать
Если по этой теме не договориться - не будет желания делать что-то промежуточное по pfsget
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 18 Сентябрь 2020, 12:47:14
т.к. можно быстро его пимонтировать и посмотреть эту инфу - может быть
Но все равно надо будет мутить какие-то индексные файлы, чтобы каждый раз не перечитывать
Подключается и отключается модуль по имени файла. Зачем во время загрузки и подключения/отключения модулей остальная инфа? Единственное место где хранится информация помимо самих модулей это _REPOLIST. Зачем индексы, когда pfsinfo покажет нужное в любой момент.

На выходе нужен легкий гуй
Гуй это вторая часть задачи и не обязательно общая.


Консольный - неудобно подключать-отключать
Не соглашусь, дело привычки.
pfsget devx
что тут сложного?

Или даже можно так
pfsget git
а он предложит установить  DEVX

И из консольного скрипта сделать гуй можно, а вот наоборот... :)

Я взялся за pfsget, потому, что это следующий шаг для того чтоб скрипты были универсальными. Ни то что сейчас есть у вас ни наше даже близко не подходит.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 18 Сентябрь 2020, 12:57:01
Гуй это вторая часть задачи и не обязательно общая.
Но у меня он есть. Не супер, но рабочий и переписывать его без существенного улучшения функционала не хочется
дело привычки.
pfsget devx
что тут сложного?
Тут ничего, а удобно ли отключить 5 модулей не подряд? см скрин
Будете руками точные названия набивать?
И из консольного скрипта сделать гуй можно, а вот наоборот... :)
Да - в идеале и то и другое, но без гуя в итоге мне не интересно
это следующий шаг для того чтоб скрипты были универсальными
Не понял -какие скрипты имеешь ввиду
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 18 Сентябрь 2020, 13:06:34
Тут ничего, а удобно ли отключить 5 модулей не подряд?
При чем тут pfsget?
Если камень в сторону pfsunload, то он понимает не только имена но и номера слоев.
pfsunload 01 - отключит последний подключенный, например.
Кстати, можно в bash completion добавить pfs-utils. Хорошая мысля, надо подумать .

Не понял -какие скрипты имеешь ввиду
pfs-utils конечно.

но без гуя в итоге мне не интересно
Потому и делаю так чтоб не ломалось то что есть.

Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 18 Сентябрь 2020, 13:12:59
pfsunload 01 - отключит последний подключенный например.
Согласитесь, что все равно гуй тут удобнее
pfs-utils конечно.
Ну так сейчас - норм везде
А pfs-get -у могут понадобиться только спек файлы внутри модулей или в репе
Т.е. можно это использовать, а можно нет

Вообще , конечно, в идеале бы про гуй договориться...
Я ничем кроме sh awk gtkdialog yad не владею
Тяжелых решений не хотелось бы
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 18 Сентябрь 2020, 13:17:03
Т.е. можно это использовать, а можно нет
именно.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Сентябрь 2020, 05:48:50
Попробую собрать что имеем в кучу и что планируется. Может кто идей докинет. Итак.
pfsget - скрипт для установки модулей из репы.
Репа модулей для pfsget это сетевая папка rsync + все что умеет wget + webdav (в планах), внутри папки может быть любая иерархия каталогов с модулями и два специальных файла _REPOLIST (или _REPOLIST.gz) и _REPOLIST.sig. Первый содержит имена модулей с некоторыми данными по ним, второй это gpg подпись первого. Такая конфигурация позволяет переносить всю репу с одной сетевой папки на другую без пересборки реполистов.
Требуется пересборка реполистов при изменениях в репе. Делается тем же pfsget (над генерацией данных в реполист еще надо работать).
Таким образом при скачивании модуля pfsget скачивает реполисты и подписи со всех реп, проверяет подписи по публичным ключам находящимся в сборке, далее производит поиск в общем списке со всех реп, если что-то найдено предлагает к установке. В случае если найденное вас устраивает и вы соглашаетесь модуль скачивается, вычисляется его контрольная сумма и эта сумма сравнивается с суммой записанной в подписанном реполисте. Такая схема практически исключает установку "левого" модуля.
Если модуль имеет зависимости указанные в pfs.deps - они также будут загружены и проверены.
Ключи:
    "-u" | "--update-media"  обновить реполисты
    "-f" | "--force"               не задавать вопросы
    "-i" | "--install" )            качать не в текущую папку, а в папку указанную для установки модулей (modules) и подключить
    "-l" | "--load" )              подключить после скачивания
    "-o" | "--outdir" )           куда качать
    "-s" | "--search" )          только найти
    "-g" | "--guimode" )       режим выхлопа удобный для парсинга внешней программой (например GUI для pfsget)
    "-m" | "--mkrepolist" )   генерация реполиста для репы

Частично реализовано.
Нечеткий поиск. В случае если модуль не найден в списках поиск продолжается в специальном файле куда заносятся возможные варианты поиска в том числе на русском.
Например:
pfsget браузер
Предложит вам повторить поиск с firefox, opera, vivaldi, palemoon и так далее.
Более того при наличии в системе agrep поиск будет проведен с учетом того, что в запросе есть ошибки то есть
pfsget браВзер
Предложит вам тот же список.
Сама эта система работает, нужны списки соответствий.


В ближайших планах.
Режим обновления.
pfsget ./модуль.pfs
Ищет в репе более новый (или может не новейший, а отличный от текущего) модуль. Качает во временную папку, сверяет суммы, пытается отключить текущий модуль и заменить на новый. Если отключить не получается, то заменяет не отключая и предлагает перегрузить. В случае если репа rsync имеет смысл перед скачиванием "подсунуть" предыдущий модуль. Это уменьшит траффик (при небольших изменениях обычно раза в два).
Пока не ясно по алгоритму сравнения имен модулей (см. выше)

Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 19 Сентябрь 2020, 09:06:29
А есть тестовая репа, чтобы проверить? А то пока на всех ключиках, только
########################################
и тишина.
Попробовал pfsget -m, создался /_REPOLIST.gz с инфой о abc123.pfs, который у меня лежал в ~/live:
.abc123.pfs VER=00.00 REV=00 DATE=2020-09-16 SIZE=4,0K MD5=8dd1fc3cc71fc28bba083d40cfbab5b7

Вроде тогда должен работать pfsget -l abc123.pfs, но нет (запускал из ~/live/Загрузки).     


А так, мне нравится наличие " -l | --load", мелочь, а удобно. А так же, что по умолчанию качает в текущую папку - часто запуская iso в ВМ, приходится переопределять в sfs-get выставленный путь /optional (который не работает с sr0) на домашнюю директорию. Тоже мелочь, но...

Код
pfsget --help                                           
/usr/local/bin/pfsget: строка 210: HLP: команда не найдена


UPD.
мне нравится наличие " -l | --load",
Это реализовано и в sfs-get, забыл. Но все равно я за консольный обеими руками.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 19 Сентябрь 2020, 09:14:32
    "-u" | "--updAte-media"  обновить реполисты
А то так и в help попадет. :)
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Сентябрь 2020, 15:49:55
Для локальной папки создавать реполист не нужно. Но саму папку нужно прописать в список репозиториев. Давно это не проверял, надеюсь работает.
За ошибку спасибо, исправлю.
Тестовой репы нет, могу завести в принципе. С rsync :)
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 20 Сентябрь 2020, 13:29:02
Т.к. изначально хотели сделать, чтобы и с busybox работало - т.е. не раздувать - хотелось бы обойтись wget и gpg (ну или опционально)

есть тестовая репа, чтобы проверить?
http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/_REPOLIST.gz , но ,возможно  старый

Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 20 Сентябрь 2020, 17:34:19
Rsync и gpg не обязательные.
Сетевой протокол выбираете сами, подтерживаются все что держит wget + rsync. В планах webdav еще. Для реп на ЯД и прочих.
Gpg будет требовать если найдет файл sig. Но так оставлять не правильно, нужно будет делать выключатель в конфиге.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 26 Сентябрь 2020, 06:23:10
Есть альтернативная мысль. А что если хранить нужные значения (имя, версия пакета, версия модуля, ревизия и проч.) не в названии модуля, а внутри модуля. Логичным кажется что-то вроде pfs.spec, но не понятно как быть с контейнерами. Там может оказаться много спеков. Соответственно при обновлении репы данные читаются из спеков и записываются в _REPOLIST. Конечно все это касается только модулей которые распространяются через репозитории. То есть спек не обязателен.
С контейнерами действительно беда. Там у нас получается вообще нет места куда складывать то, что относится именно к контейнеру, а не к его подмодулям. Есть идеи? Может вообще спецификацию pfs файла переделать? Я бы папки mount/install упразднил докучи.

Тут тема мелькала, потом закрыли, по обновлению iso. Так pfsget это половина работы уже. Ему не важно модуль это или ядро например. Обновлятор для всего дистра получится достаточно простым скриптом. Алгоритм приблизительно такой. Добавляете в дистр файл с версией /prar/version -  метка чтоб понять что пора обновляться. На сервере в отдельной папке вся сборка в распакованном виде. Скрипт качает новый _REPOLIST, сравнивает контрольные суммы локального и удаленного version (или сами файлы). Если отличаются создает папку prar_new и выкачивает туда новую версию с репы. Лучше даже  cp prar prar_new с rsync качать надо будет много меньше, и не нужно отдельно переносить сохраненки и прочее "свое". В случае успеха останется только переименовать prar -> prar_old и prar_new -> prar и перегрузить. В случае неудачной загрузки обновлений, перезапуск скрипта и тут опять выгоднее rsync. В случае если сами обновы косячные можно загрузиться с prar_old. И все это с подписями и проверками контрольных сумм, то есть достаточно надежно и секурно.
З.Ы. Есть наработки и по полной сборке дистрибутива скриптами. Делал такую сборочную для магос-подобной сборки. На входе лайв дистра репозиторий которого используете, на выходе готовая сборка со всеми обновлениями и несколько отдельно собираемых модулей. Сборка "нахолодную" - часа 3 занимала, пересборка - час. Скрипты показать не смогу, тем более там urpmi и все равно переписывать, но рассказать могу очень подробно. На всю работу от идеи до стабильной пересборки ушла неделя где-то. Мне кажется вам этого не хватает. Если выложить скрипты в гит получится совместная работа, а не перекидывание каждой минимальной правки через форум и sfs.

Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 27 Сентябрь 2020, 09:22:05
С контейнерами действительно беда. Там у нас получается вообще нет места куда складывать то, что относится именно к контейнеру, а не к его подмодулям
/etc/packages/mount/имя_контейнера.spec ?
Может вообще спецификацию pfs файла переделать?
C потерей совместимости?
Я бы папки mount/install упразднил докучи
У себя не нашел
по обновлению iso
Как-то сложно и так же не понятно, чем это лучше обычной фругал установки с обычным автообновлением...

Есть наработки и по полной сборке дистрибутива скриптами.
Дистры старее прар2008 у меня достаточно рукодельные. В прар я постепенно иду к этому - все уже опакечено
Но тороплюсь не очень. Мне и так удобно. Среди юзеров сборщиков не выявлено
Если выложить скрипты в гит получится совместная работа,
не с кем, к сожалению
не перекидывание каждой минимальной правки через форум и sfs.
Чем плохо автообновление модуля и как тут поможет гит...
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: DdShurick от 27 Сентябрь 2020, 09:43:07
С контейнерами действительно беда.
Мне мыслится так: атомарный модуль - pfs.files, контейнер - pfs.list (список вложенных атомарных модулей). Тогда всё логически решается.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 27 Сентябрь 2020, 20:30:30
/etc/packages/mount/имя_контейнера.spec ?
Возможно. Надо смотреть что произойдет при склейке контейнеров с такими спеками и еще мне не нравится, что у атомарного модуля со спеком для репы и у контейнера со спеком эти спеки будут в разных местах.
/etc/packages/mount/имя_контейнера.spec
/etc/packages/mount/имя_модуля/pfs.spec
Может быть ввести специальный файл который используется только для репы и пфсгет и при склейке просто теряется? Как заменитель для "правильного" имени модуля, которые вы не хотите адаптировать для надежного парсинга.

C потерей совместимости?
Вероятно да.

У себя не нашел
/etc/packages/mount/
/etc/packages/install/
Зачем эти папки? Почему нельзя сразу в /etc/packages? А инсталленые модули помечать меткой
/etc/packages/имя_модуля/.installed
Или просто искать модуль в aufs-n если отсутствует, значит инсталленый.
Не то чтобы это прям проблема, просто при склейке эти папки mount попадают в submod и множатся с каждым уровнем вложенности.
Как-то сложно и так же не понятно, чем это лучше обычной фругал установки с обычным автообновлением...
У вас есть автообновление сборки? Не знал. Думал только модули обновляются.

Чем плохо автообновление модуля и как тут поможет гит...
Гит помогает не в автообновлениях, а во внесении изменений в код командой. Найдя небольшую ошибку можно просто исправить в гит и со следующим обновлением все получают исправленное. При этом не надо писать в форум, напоминать и т.д.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 27 Сентябрь 2020, 20:40:46
Мне мыслится так: атомарный модуль - pfs.files, контейнер - pfs.list (список вложенных атомарных модулей). Тогда всё логически решается.
Логично решается пока уровень вложенности один, когда начинаешь склеивать контейнеры с контейерами, или контенеры с атомарными становится совсем не так гладко. Получается нужно хранить древообразную структуру в этом файле плюс все остальные файлы от подмодулей списки и т.д.
Нашел, как мне кажется, отличное решение. Файловая иерархия она же тоже древообразна. По этому саму структуру хранит фс и там же храним файлы.
Грубо папка - модуль, подпапка - подмодуль папки, подпапка подпапки - подмодуль подмодуля и так далее. При склейке просто сдвигается вся структура вглубь на один шаг. При этом папка каждого подмодуля хранит списки, спеки, дублирующиеся файлы и т.д.
А проблема с контейнерами в том, что не понятно куда запихать описание контейнера, остальное работает.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 28 Сентябрь 2020, 11:14:40
/etc/packages/mount/
/etc/packages/install/
Зачем эти папки? Почему нельзя сразу в /etc/packages?
Вспомнил. Это установленные (т.е. распакованные). Поэтому у меня и нет
инсталленые модули помечать меткой
/etc/packages/имя_модуля/.installed
чем это по итогку будет лучше? Искать неудобно
У вас есть автообновление сборки?
автообновления исо нет. Есть только модулей для фругал и pacman -Suy для фул
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 10:14:09
чем это по итогку будет лучше? Искать неудобно
Да эта инсталляция вообще побочный функционал, лучше будет тем что структура каталогов проще. На самом деле мешает не особо, заморачиваться такими "улучшениями" стоит только если будет реальный повод для изменения спецификации с нарушением совместимости. Короче пусть живет пока :)
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 30 Сентябрь 2020, 11:15:24
пусть живет пока
Да. Как-то маловато плюсов на выходе...
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 18:13:32
Попробовал решить вопрос с метаданными для реполиста. В итоге пока так. Ключ для mkpfs  "--mkinfo". С этим ключем mkpfs задает несколько вопросов и формирует файл ${PFSDIR}/INFO, то есть в вашем случае /etc/packages/INFO. Файл нужен только для модулей которые выкладываются в репе, то есть не обязательный. Не сохраняется при склейке модулей. То есть имеет отношение только к самому модулю, а не к его подмодулям, независимо от того контейнер это или атомарный. При наличии этого модуля все нужные данные берутся из него, а не из имени модуля.
Еще раз. Работает и с обычными модулями, но могут быть ошибки в поиске и сравнении версий.
mkpfs папка -o папка.pfs --mkinfo               #сборка модуля с созданием INFO
mkpfs папка.pfs -o папка2.pfs   --mkinfo      #пересборка с внесением изменений в INFO, или перепаковка модуля с добавлением INFO

Как пробовать локально.
Нужна папка с модулями, а лучше две. Модули произвольные.
Одна папка будет подключаться как локальная вторую подключим как удаленную. Для этого одну папку вписываем в файл
/etc/pfsget/mirror.lst. Просто полное имя папки с путем от корня.
Во второй папке создаем реполист:
pfsget -m ./
И запустим сервер. Я обычно питоном
python -m SimpleHTTPServer (это второй питон, у третьего иначе)
и  тоже дописываем в миррор.лст
http://127.0.0.1:8000/_REPOLIST.gz

Проверяем.
pfsget -u      #обновляем списки

И пробуем искать модули
pfsget -s имя_модуля

P.S. После любых изменений в удаленной репе  нужно пересоздавать реполист и перечитывать с pfsget -u. При изменениях в локальной репе только pfsget -u.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 30 Сентябрь 2020, 21:13:44
А то пока на всех ключиках, только
########################################
и тишина.
Подумал, что PRAR расово неправильный "дистрибутив" и запустил pfsget в MagOS. Но тоже самое, висит без признаков жизни (скрин). Даже стало интересно, на чем таком тестируется pfsget.  :)

P.s. i3wm, запущен "compton -bcf --config /usr/share/magos/i3/compton.conf". Ключики -cf делают бесмысленную настройку compton.conf. Вот не люблю я включенное затухание (fading = true), создается субъективное ощущение 'подтупливающей' системы, у себя всегда выключаю. А здесь проще killall compton && compton -bc.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 21:22:52
Сейчас только на магос тестирую.  Опишите что делаете, возможно что-то не так. Там ведь нет преднастроек под пра или магос.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 21:26:16
По комптону не помню почему именно так.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 30 Сентябрь 2020, 21:28:20
MagOS_2016.64_20200822.iso в ВМ (i3wm)
urpmi git
git clone https://github.com/pfs-utils/pfs-utils-cli
git checkout pfsget
cp pfsget /usr/local/bin/
pfsget
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 21:37:27
MagOS_2016.64_20200822.iso в ВМ (i3wm)
urpmi git
git clone https://github.com/pfs-utils/pfs-utils-cli
git checkout pfsget
cp pfsget /usr/local/bin/
pfsget
Не совсем так. Что вы ожидали от пфсгет в отсутствии репозитория :)
Копировать нужно не только пфсгет,  но все скрипты и в случае магос копировать надо в /usr/lib/magos/scripts/
Также нужны конфиги в /etc/pfsget/, их тоже нужно копировать из гит репы.
Ну и создать репы и прописать их в /etc/pfsget/mirror.lst как описывал выше.
З.Ы. Чтоб работала проверка подписи нужно до генерации реполистов еще и создать gpg ключи. И публичный положить в /etc/pfsget/keys
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 30 Сентябрь 2020, 21:45:47
Чет сложненько. ) А по пунктам, уже применительно к PRAR?

1. git clone https://github.com/pfs-utils/pfs-utils-cli
2. git checkout pfsget
3. cp pfsget /usr/local/bin/
Т.е. имеем клонированный git и /usr/local/bin/pfsget. Что еще в PRAR сделать, лучше сразу командами.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 21:52:35
В пункте 3 нужно копировать все скрипты. Плюс надо копировать из гитрепы /etc/pfsget/* с сохранением путей.
Дальше смотрите пост выше, где описано как создать репу. Можно для начала просто локальную папку, без сетевого источника.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 21:54:07
Чет сложненько
Потому, что это должно быть настроено в дистрибутиве. У нас этого пока нет. Когда будет тогда будет проще чем гуй :)
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 30 Сентябрь 2020, 22:04:23
Заработал, когда скопировал все из
Цитата
(git)-[pfsget] $ ls
addmemory   mountfile   pfsfind      pfsload       runpfsload-example    umountfile
aufs-n      pfs         pfsfindlibs  pfsrebuild    runpfsunload-example
chroot2pfs  pfsdepends  pfsget       pfsuninstall  sync2layer
mkpfs       pfsextract  pfsinfo      pfsunload     syschanges
Эти все и так есть в PRAR, думал не надо. Уже был создан /etc/pfsget/mirror.lst, докинул на всякий случай и aliases.cfg.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 30 Сентябрь 2020, 22:10:16
Код
pfsget -s deadbeef

Вероятно вы искали этот модуль:
==> http://127.0.0.1:8000/deadbeef-static-p-0.7.2-3-sf02.pfs
VER=0
REV=0
DATE=2018-03-25
NAME=deadbeef-static-p-0.7.2-3-sf02.pfs
ALIASES=deadbeef-static-p-0.7.2-3-sf02.pfs
AUTHOR=unknown
SIZE=6,0M
MD5=8408e1f7b99ef39a112f0af856419207
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 22:12:53
Эти все и так есть
Есть отличия.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 22:14:20
pfsget -s deadbeef

Вероятно вы искали этот модуль:
==> http://127.0.0.1:8000/deadbeef-static-p-0.7.2-3-sf02.pfs
VER=0
REV=0
DATE=2018-03-25
NAME=deadbeef-static-p-0.7.2-3-sf02.pfs
ALIASES=deadbeef-static-p-0.7.2-3-sf02.pfs
AUTHOR=unknown
SIZE=6,0M
MD5=8408e1f7b99ef39a112f0af856419207
Выглядит как и должно.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 30 Сентябрь 2020, 22:18:14
И так же успешно ищет и в локальной тестовой репе:
Код
$ pfsget -s celluloid

Вероятно вы искали этот модуль:
==> file://home/live/local/celluloid-int-gtk3-p-0.19_64-sf05.pfs
VER=0
REV=0
DATE=2020-08-10
NAME=celluloid-int-gtk3-p-0.19_64-sf05.pfs
ALIASES=celluloid-int-gtk3-p-0.19_64-sf05.pfs
AUTHOR=unknown
SIZE=6,7M
MD5=26b758341201dcccf2b6feed21f55e85
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 22:20:16
Если пересобрать
mkpfs deadbeef.pfs -o deadbeef_new.pfs --mkinfo
И снова сгенерировать реполист, то данные будут более точными в табличке. А значит надежнее будет работать поиск и сравнение версий. Но как видите и.без этого работает тоже.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 22:25:39
Начал работать и над обновлениями. Логику надо еще додумывать, но
pfsget ./модуль.pfs уже работать должно. Если модуль собран с INFO то искать будет не по имени модуля, а по NAME из INFO.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 30 Сентябрь 2020, 22:29:16
Krasnyh, а реполист у вас подписанный?
Или без подписи? Думаю правильнее запретить неподписанные по умолчанию, а разрешать с ключем или с настройкой в конфиге.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 30 Сентябрь 2020, 23:10:13
Для подписи реполиста нужен gpg2. Ключи делаются так:
gpg2 --generate-key
После надо ответить на вопросы. В случае если установлен gpg2 и сгененрированы ключи у пользователя под которым делаете REPOLIST.
Этот самый реполист будет подписан автоматически. Если нет, то без подписи.
Для того чтоб проверялась подпись, у юзверей должен быть Ваш публичный ключ pubring.gpg. Ключ ищите в ~/.gnupg/  после генерации ключей. Его кладем в /etc/pfsget/ всем пользователям.
В Арче gpgme (https://www.archlinux.org/packages/core/x86_64/gpgme/)
Код
.gpgme-1.14.0-1.pfs/usr/bin $ ll
итого 5185
-rwxr-xr-x 1 root root    3075 сен  3 20:34 addgnupghome
-rwxr-xr-x 1 root root    2217 сен  3 20:34 applygnupgdefaults
-rwxr-xr-x 1 root root  583120 сен  3 20:34 dirmngr
-rwxr-xr-x 1 root root  117408 сен  3 20:34 dirmngr-client
-rwxr-xr-x 1 root root 1111912 сен  3 20:34 gpg
lrwxrwxrwx 1 root root       3 сен  3 20:34 gpg2 -> gpg
-rwxr-xr-x 1 root root  178624 сен  3 20:34 gpgconf
-rwxr-xr-x 1 root root    4920 июл 16 19:34 gpgme-config
-rwxr-xr-x 1 root root   83968 июл 16 19:34 gpgme-json
-rwxr-xr-x 1 root root   75920 июл 16 19:34 gpgme-tool
-rwxr-xr-x 1 root root   30544 сен  3 20:34 gpgparsemail
-rwxr-xr-x 1 root root  256240 сен  3 20:34 gpgscm
-rwxr-xr-x 1 root root  519184 сен  3 20:34 gpgsm
-rwxr-xr-x 1 root root   84328 сен  3 20:34 gpgsplit
-rwxr-xr-x 1 root root  154872 сен  3 20:34 gpgtar
-rwxr-xr-x 1 root root  457616 сен  3 20:34 gpgv
lrwxrwxrwx 1 root root       4 сен  3 20:34 gpgv2 -> gpgv
-rwxr-xr-x 1 root root  418464 сен  3 20:34 gpg-agent
-rwxr-xr-x 1 root root  162560 сен  3 20:34 gpg-connect-agent
-rwxr-xr-x 1 root root  207808 сен  3 20:34 gpg-wks-server
-rwxr-xr-x 1 root root  174656 сен  3 20:34 kbxutil
-rwxr-xr-x 1 root root    2815 авг 30 13:52 ksba-config
-rwxr-xr-x 1 root root    3102 ноя 13  2019 npth-config
-rwxr-xr-x 1 root root     122 ноя 13  2019 pinentry
-rwxr-xr-x 1 root root   72080 ноя 13  2019 pinentry-curses
-rwxr-xr-x 1 root root   63880 ноя 13  2019 pinentry-emacs
-rwxr-xr-x 1 root root   80272 ноя 13  2019 pinentry-gnome3
-rwxr-xr-x 1 root root   92560 ноя 13  2019 pinentry-gtk-2
-rwxr-xr-x 1 root root  129608 ноя 13  2019 pinentry-qt
-rwxr-xr-x 1 root root   67976 ноя 13  2019 pinentry-tty
-rwxr-xr-x 1 root root   22368 апр 14 20:49 secret-tool
-rwxr-xr-x 1 root root  121472 сен  3 20:34 symcryptrun
-rwxr-xr-x 1 root root   18184 сен  3 20:34 watchgnupg
После выполнения "gpg2 --generate-key"
Код
~/.gnupg $ ls **
pubring.kbx~  pubring.kbx  trustdb.gpg

openpgp-revocs.d:
CCB043B80643BD78F9E776E32C6B4453E994F8AD.rev

private-keys-v1.d:
215CE276EE382C9983324071198351C431AAE1FC.key
302A494A75FFCE1801F489855186BB1D2E2C9475.key
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 01 Октябрь 2020, 06:01:33
Переделано на gpg (не 2). Переделал после того как sfs пробовал. Забыл отписаться, сорри.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 01 Октябрь 2020, 06:03:42
gpg --version
gpg (GnuPG) 1.4.23

 $ gpg2 --version
gpg (GnuPG) 2.2.17-unknown
libgcrypt 1.8.5
NOTE: THIS IS A DEVELOPMENT VERSION!

Переписать на gpg?
После этого решил, что правильнее gpg.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 17 Октябрь 2020, 13:08:25
Я снова с идеей.
Почему мы рассматриваем репозитории только для модулей. У нас же есть chroot2pfs и мы можем делать репозитории со скриптами для него. Ну или смешанные. Попробую расписать как это могло бы выглядеть.
Напомню скрипт для chroot2pfs это что-то вроде ваших скриптов для обновления браузеров. То есть он выполняет действия в чруте результат которых пакуется в модуль. Можно скачивать готовые бинари с оффициальных сайтов, можно качать и компилировать что-то, можно устанавливать софт с репозитория и после его "обезжиривать"  и т.д.
Скрипт может выполняться любым доступным в целевой системе интерпретатором, но думаю чаще всего это будет /bin/sh.
Теперь о том что нужно дописать.
Первое. Нужно продумать логику того что должен делать pfsget при скачивании таких скриптов, чтоб работало очень похоже на скачивание модулей. Приведу конкретные примеры и предположительно что должно произойти. Обсудим по каждой строке.
pfsget модуль - скачивает модуль в текущую папку
pfsget скрипт - ?

pfsget -l модуль - скачивает в текущую папку и подключает
pfsget -l скрипт - предлагаю: скачать в текущую скрипт, собрать здесь же модуль и подключить

pfsget -i модуль - качает в стандартную папку для модулей (modules) и подключает
pfsget -i скрипт - предлагаю: скачать срипт в текущую папку, собрать модуль, перенести в modules и  подключить

То есть не понятно с вариантами для скриптов: "проcто скачать" и "скачать и собрать"

Второе. Как донести pfsget инструкцию по сборке, то есть то что должно быть в cmdline для chroot2pfs при сборке. Тут вижу два варианта:
а. Простой. Имя генерируется из имени скрипта остальное для всех скриптов одинаково. Легко организовать, но не возможно передать доп. параметры. Список модулей для чрута, алгоритм сжатия, или еще что-то.
б. Второй. Записать в сам скрипт. Можно сразу после шебанга в закоменнтаренном виде, например.
#!/bin/bash
#chroot2pfs -o firefox.xzm -c nspawn -f --script ./firefox.sh
дальше
основной
код

То есть pfsget должен будет для сборки модуля запустить все, что закомментарено после шебанга. Можно как то посложнее выделить типа
#==> chroot2pfs -o firefox.xzm -c nspawn -f --script ./firefox.sh
чтобы не попутать с реальными комментами. Думаю не будет лишним разрешить выполнение нескольких таких строк, можно будет выполнять действия до и после сборки (пока не знаю зачем).

Думаю можно дать таким скриптам отдельное расширение, наприме script.c2p чтоб не путаться.

З.Ы. Нахрена это нужно.
- для софта который нельзя легально иметь в репозитории, к примеру скайп. То есть как аналог get пакетам.
- для софта которого нет в репе и его надо компилить. В случае скрипта вы будете уверены что все скачано с оф. источника и собрано на вашей машине
- для сборки модулей из пакетов, когда требуются действия после установки, например удаление лишнего.
З.З.Ы Напомню, что модули собранные чрут2пфс - пересобираемые. То есть если в скрипте предусмотренно скачивание не конкретной версии софтины, а новейшей версии, то chroo2pfs имя_модуля.pfs собрет вам обновленный модуль.

Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 17 Октябрь 2020, 15:34:58
#==> chroot2pfs -o firefox.xzm -c nspawn -f --script ./firefox.sh
Так конечно лучше, чтобы параметры были перед глазами. А то я когда составлял строку chroot2pfs для темы JWM (http://forum.puppyrus.org/index.php?topic=17646.msg172090#msg172090), поднимал документацию, ибо подзабыл все.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 19 Октябрь 2020, 09:37:55
У нас же есть chroot2pfs и мы можем делать репозитории со скриптами для него.
1. Скрипты будут дистрозависимыми, т.к. одинаковые пакеты в разных дитстрах называются по разному
Да и в пределах одного дистриба могут меняться
Для софта типа браузеров (качаются с сайта производителя) - может быть. Но проще написать скрипт автообновления на базе имеющегося модуля - что я и сделал
2. А как собрать базовый модуль...
По своему опыту - собираю базу средствами дистра (pacstrap debostrap) . Модуль ТК и DE в chroot2pfs
Модули софта мне удобнее собирать уже pacman2pfs (repo2pfs) в запущенном новом дистре, а не вслепую
3. Опять же - проще обновлять дистр по списку пакетов предыдущего : pacman2pfs "`pfspkg старый.pfs`"
4. Для кого это все? много народа собирает свои дистры

Я в prar2008 пришел к концепции :
Если дистр собран исключительно из родной репы (как MagOS) - ставьте стандартно фул. Удивить тут можно только нестандартной ДЕ
Хотите Frugal фич :  uird или пр initrd
Актуально на стационаре. Место экономить не надо. Ресурсы - не всегда
Юзер должен интересоваться свежим софтом и т.п.

Frugal имеет смысл на флэшках, слабом железе и т.п.
Тут может заинтересовать режим copy2ram - убирает проблемы медленных и жрущих батарею носителей типа hdd
Юзеру надо только несколько прог. Большинству - только браузер
Подготовка юзера - минимальная. Установка проще обычного линукса - скопировать модули
Тут надо сжимать и оптимизировать модули. Полностью автоматизировать сложно. Да и не нужно. Пока браузеры запускаются - обновлять смысла (кроме закрытия дыр) нет

В итоге prar2008 можно и так и так и есть смысл обновлять
lf - только фругал и обновлять смысла нет (как минимум пока)

Короче - итог : вряд ли многим это нужно
Всем фругальщикам нужен менеджер модулей с GUI. Но тут мы никак пока не можем договориться...
я когда составлял строку chroot2pfs для темы JWM, поднимал документацию, ибо подзабыл все.
Вот - уже местами сложно до необходимости чтения док. многие это будут делать?
Надо ли еще усложнять?
Лучше сделать максимально интуитивно понятным и документировать
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Октябрь 2020, 10:49:28
Я предлагаю это как дополнение к тому, что есть. То есть в репе помимо модулей.pfs лежат еще скрипты.c2p. При этом для пользователя установка того и другого должна выглядеть максимально одинаково. Запустил pfsget opera, получил оперу, при этом он может даже не знать, что это был скрипт, а не модуль.
В некоторых случаях скрипт предпочтительнее модуля, а в некоторых и вообще не заменим, например по лицензионным соображениям. Так что лишним не будет.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 19 Октябрь 2020, 10:51:22
Запустил pfsget opera.получил оперу
В любом линуксе? А как с зависимостями?
по лицензионным соображениям
можно подробнее
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Октябрь 2020, 10:55:08
Вот - уже местами сложно до необходимости чтения док. многие это будут делать?
Есть множество вполне стандартных утилит, синтаксис которых я ищу в доках всякий раз как понадобится. Просто потому, что они не каждодневно используются. Iptables например. Да теже sed и awk, если задача чуть сложнее обычного лезу в доки.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Октябрь 2020, 10:57:49
В любом линуксе? А как с зависимостями
Причем здесь любой линукс? В конкретной репе, конкретного прар лежат конкретные модули. Я предлагаю расширить функционал и добавить в эту репу конкретные скрипты для установки конкретного софта для конкретно этого же прар.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Октябрь 2020, 10:59:20
можно подробнее
Описывал выше уже. Пример скайп, вы не можете согласно его лицензии распространять скайп. Но вполне можете распространять скрипт, который качает официальный скайп и пакует в модуль.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 19 Октябрь 2020, 11:01:24
расширить функционал и добавить в эту репу конкретные скрипты для установки конкретного софта
А не проще сделать мета пакет - пустой , только  со списком модулей в зависимостях и pacman2pfs  его
Уже так делал. Не очень прижилось. Мне со старого модуля обнловлять удобнее...
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Октябрь 2020, 11:04:07
не проще сделать мета пакет - пустой
С метапакетами задачи пересекаются лишь частично.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 19 Октябрь 2020, 11:06:31
скайп, вы не можете согласно его лицензии распространять скайп
https://pkgs.org/search/?q=skype
Ничего не путаете?
В слаке и арче (не оф. репах) есть
С метапакетами задачи пересекаются лишь частично.
А в чем будет разница? На выходе, то одно и то же
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Октябрь 2020, 11:12:51
Ничего не путаете?
Могу конечно и путать конкретно по скайпу. Но такой софт есть и его дохрена. Сам бесплатный, но качать надо с оф.сайта. Распространять запрещено. Обычно в репы это попадает get пакетами. Типа get-telegram, которые при установке также качают сф.сайта.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Октябрь 2020, 11:15:20
А в чем будет разница? На выходе, то одно и то же
На выходе, да. А  на входе у метапакета, только пакеты, а у скрипта для чрут2пфс что угодно,  например исходники софтины + зависимости из репы.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 19 Октябрь 2020, 11:37:15
на входе у метапакета, только пакеты, а у скрипта для чрут2пфс что угодно,  например исходники софтины + зависимости из репы.
Такое (сценарий сборки пакета) тоже есть в любом дистре. В арче AUR и ABS.
Зачем переизобретать...
Достаточно конвертера пакета в модуль или универсально - под любой дистр chroot2pfs
Собирать пакет стандартными средствами дистра
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Октябрь 2020, 12:52:06
Такое (сценарий сборки пакета) тоже есть в любом дистре. В арче AUR и ABS.
Зачем переизобретать...
Если все сваливать на ПМ, то откуда у вас вообще репы модулей? В магос например их нет, все собираем urpm2xzm.
А раз модули в репах есть, значит ПМ не достаточно и скрипты могли бы быть полезны.
И вообще у дистра может и не быть ПМ. Дистры разные нужны.... :)
Кто-то еще выскажется по теме?
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 19 Октябрь 2020, 13:31:04
Если все сваливать на ПМ, то откуда у вас вообще репы модулей?
Я совсем недавно стал стараться опакечивать все. Причем это не очень удобно - двойная работа, но оно стоит того. Т.к. "задача свелась к предыдущей" - делаем из пакетов модуль + доп. плюс - можно юзать в фул без модулей
В магос например их нет, все собираем urpm2xzm.
Зачем тогда вообще pfs-get. С чем работать будет?
У меня нет иллюзий , что юзера будут сами собирать массово
Думаю, что даже с автообновлением браузеров большинство ждет готового модуля...
у дистра может и не быть ПМ
Как в таком прописать зависимости?
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 19 Октябрь 2020, 14:27:07
Зачем тогда вообще pfs-get. С чем работать будет?
Некогда о себе думать, все для вас, все для вас :)
Как в таком прописать зависимости?
У модулей есть возможность иметь зависимости. И пфсгет их установит, если прописаны. Просто пока мы это не используем.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 14 Ноябрь 2020, 21:44:30
Почему мы рассматриваем репозитории только для модулей. У нас же есть chroot2pfs и мы можем делать репозитории со скриптами для него. Ну или смешанные.
Может не в поддержку этой идеи, а как отдельная мысль:
Подумал, что PRA сильно привязан к определенной дате своей репы. Непросто выйти за ее пределы и при этом не поломать всю систему.

При необходимости поддерживать какое-то приложение в актуальном состоянии, придется совершать слишком много ручного труда (редактирование mirrors, обновление баз *.db, потом все повторять в обратном порядке, иначе все сломается), плюс полученные пакеты скорее всего придется устанавливать в /opt. Насколько понимаю, sfs так и делает, чтобы каждый раз не обновлять всю систему, если какое-то приложение с новой версией требует новых зависимостей и либ. Делает по большей части ручками.

Так что идея некой замороженной (статичной в течении длительного времени) базы и современных постоянно обновляемых приложений, собранных с chroot2pfs --script возможно имеет смысл. Правда размер системы, в таком случае, будет постоянно расти за счет дублирования файлов разных версий.


p.s. На самом деле я понимаю, что настоящий PRA и представляет из себя описанное в предыдущем абзаце. :) В плюсах была бы в первую очередь автоматизация - записанные в скриптах часто повторяющиеся действия:
Цитата
(редактирование mirrors, обновление баз *.db, потом все повторять в обратном порядке, иначе все сломается), плюс полученные пакеты скорее всего придется устанавливать в /opt.
Так же обязателен запуск trim и и.д.


upd. По сути, речь не о множестве скриптов, как было в первоначальной идее, а об одном, где меняется только название приложения. И кратковременно размораживается репа на текущую дату.

Так же в скриптах можно прописать сборку из AUR, это касается пакетов *-bin и перепакованных из *.deb.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: betcher от 15 Ноябрь 2020, 05:58:49
Это конкретно "арчевое". Для pfs-utils нужны универсальные идеи.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 15 Ноябрь 2020, 09:00:15
PRA сильно привязан к определенной дате своей репы
Не более, чем любой другой линукс. Доказал на примере LFD DDR
Непросто выйти за ее пределы и при этом не поломать всю систему.
Выкрутился портированием
При необходимости поддерживать какое-то приложение в актуальном состоянии, придется совершать слишком много ручного труда (редактирование mirrors,
Простые проги проще перекомпилить под свой срез
Делает по большей части ручками.
Прог для дома надо мало. Это не сложно
Кому нужно много прог в актуальном состоянии - фул
Причем  прар2008 будет работать как фул  и останется совместим с  портированной репой. Т.е. крути как хочешь. От полного фругала до полного фула
Т.е. моя портированная репа и арч могут жить вместе, но достаточно независимо. Эту идею я и шлифовал в прар последние годы. Наконец, вроде, получилось

идея некой замороженной (статичной в течении длительного времени) базы и современных постоянно обновляемых приложений, собранных с chroot2pfs --script возможно имеет смысл.
Ну так именно это и реализовано, но перекомпиляцией. Это универсальное решение. chroot2pfs будет сложнее и менее предсказуем. В PKGBUILD можно описать любой сценарий. Ничего изобретать не надо

На самом деле я понимаю, что настоящий PRA и представляет из себя описанное в предыдущем абзаце. :) В плюсах была бы в первую очередь автоматизация - записанные в скриптах часто повторяющиеся действия:
Не совсем. Вы скорее magos описали, как я его понял. Поправьте, что не так
Скрипты сборки исо (https://github.com/magos-linux/magos-linux) (в комплекте весь юзабельный софт на любой вкус по темам) из пакетов донорской репы + частая пересборка.
Цитата
Модульность. MagOS Linux состоит из независимых друг от друга модулей,
Раньше нельзя было выдергивать модули ниже по списку и зависимостей в модулях не было. Что-то изменилось?

ПРАР1801 делал как magos. Скучновато. На выходе получается большой, стандартный (т.е. абсолютно как донор) фругал, который надо обновлять переустановкой. В таком варианте не понятно, чем хуже фул (с нужным именно тебе комплектом софта) + uird (который даст любые ауфс трюки с заморозкой и т.п.)
Как фругал с флэшки плохо делимый на модули дистр 1,4 гб вряд ли актуален.

Т.е. в сухом остатке - uird, который можно прикрутить к любому линуксу. Остальное в сборке - универсальные пакеты универсального дистра (каких много - зачем еще один). Весьма избыточно для дома

В прар я пытаюсь оптимально (размер, ресурсоемкость) решать домашние задачи . Не знаю других дистров, которые именно этим заморачиваются

Написал все это для пояснения, что chroot2pfs --script с миксом срезов реп арча - зло и не получится
Получится :
1. Частая пересборка дистра полностью из донорских пакетов. Ну так почему тогда не фул?
2. Можно и своих добавить, но тогда
2a. в Rolling release их надо или постоянно обновлять (трудозатратно самодельщику) и фул не получится вообще
2b. или морозить репу (так во всех LTS линуксах и делают).

Мне за счет перекомпиляции и портирования удалось в прар2008 сделать гибрид фул+фругал 2a+2б
Только вот нужен ли именно гибрид... Сам юзаю фругал. Фул как-то не приживается.
Софт в линуксе не особо быстро обновляется. Если сузить до актуального дома софта - совсем медленно. Иначе бы LTS были не актуальны. Т.е. обновлять срез репы достаточно раз в 2 года (https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9_Ubuntu). Ничего не пропустишь. Зачем тогда фул...
речь не о множестве скриптов, как было в первоначальной идее, а об одном, где меняется только название приложения. И кратковременно размораживается репа на текущую дату.
Теоретически такое сделать можно, но...
Если пересобирать этим скриптом раз в 2 года с добавлением своих наработок за эти 2 года - нужно ли тратить время на автоматизацию
Или не понимаю, к чему вы клоните? Что хотите получить на выходе?
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 15 Ноябрь 2020, 11:46:14
Или не понимаю, к чему вы клоните?
Так что идея некой замороженной (статичной в течении длительного времени) базы и современных постоянно обновляемых приложений, собранных с chroot2pfs --script возможно имеет смысл. Правда размер системы, в таком случае, будет постоянно расти за счет дублирования файлов разных версий.
Это похоже на использование системы с пакетами snap или flatpak, или даже пакетного менеджера Nix.


А инструмент реализации напоминает pacman2pfs.sh.
upd. По сути, речь не о множестве скриптов, как было в первоначальной идее, а об одном, где меняется только название приложения. И кратковременно размораживается репа на текущую дату.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 15 Ноябрь 2020, 11:49:03
Во главе - идея автоматизации и сборки установки актуальных приложений на стороне пользователя для собственных нужд, без выкладывания в общую репу.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 15 Ноябрь 2020, 12:35:48
Без фул и компиляции со многими прогами будут проблемы
А чем фул не устраивает?
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 15 Ноябрь 2020, 13:24:08
Ну так почему тогда не фул?
Слишком часто произносится "почему не фулл". И мне кажется нет понимания с чем столкнется пользователь на самосборке под свои причудливые хотелки. И как часто ему придется чинить свою сборку после очередного вынужденного (частого) обновления системы. Частого, иначе если это дело задержать, потом можно столкнуться с нерешаемыми проблемами.

Когда sfs говорит "почему не фулл", мне кажется он видит именно Mangaro, которую готовит 'посторонний дядя', решая сопутствующие проблемы и выпуская обкатанные обновления. А сколько 'обновленченского ада' испытает/испытывает самосборщик?

Про проблемы расказывал RoDoN, когда перевел какой-то из pra-retro в фулл и со временем, после череды обновлений, там все заработало неправильным образом. С проблемами однажды столкнулись и в IceArch, когда пришлось временно заморозить репу, иначе перестало собираться. Наверно можно найти кучу подобных историй на просторах интернета.
Не надо идеализировать фулл. Для его поддержания в работоспособном состоянии надо все же обладать обширным багажом знаний.


Наверно не на пустом месте возникли такие пакетные системы как snap, flatpak, AppImage, nix.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 15 Ноябрь 2020, 19:31:25
причудливые хотелки
Можно примеры, чтобы понять что обсуждаем
нет понимания с чем столкнется пользователь на самосборке
У меня больше года стоял фул прар 1801 lxde. Все обновлялось без проблем
Даже если сломается (скорее всего из-за юзера)- пересобрать по списку пакетов легко - см. в вики прар
Частого, иначе если это дело задержать, потом можно столкнуться с нерешаемыми проблемами.
Почитайте форум арча. Нет таких проблем у юзеров со средней подготовкой
Если подготовка меньше  - manjaro
Еще меньше - любой lts
Когда sfs говорит "почему не фулл", мне кажется он видит именно Mangaro, которую готовит 'посторонний дядя', решая сопутствующие проблемы и выпуская обкатанные обновления.
1. Ну так перейдите на репу манджары. В вике прар описано
2. Насколько я понял - Мандж отличается от голого арча, тем , что в нем добавлены свои пакеты для КДЕ и пр. удобств. Поэтому они чуть подтормаживают скорость обновления, когда не успевают собрать скомпилить свое. Проверьте одинаковые пакеты из арча и манджары на мд5. Они одинаковые
сколько 'обновленченского ада' испытает/испытывает самосборщик?
Можно примеры
Про проблемы расказывал RoDoN, когда перевел какой-то из pra-retro в фулл
Это проблемы pra-retro (не предназначен для фул), а не арча.
С проблемами однажды столкнулись и в IceArch, когда пришлось временно заморозить репу, иначе перестало собираться
Что именно и как решили?
Наверно не на пустом месте возникли такие пакетные системы как snap, flatpak, AppImage, nix.
А вот это (система в системе) как раз верный путь запутаться
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 15 Ноябрь 2020, 19:39:45
Можно я скажу коротко? Уже не первый раз мы это обсуждаем и каждый раз я говорю, что сторонник фругал, но все равно каждый раз мне почему-то задается вопрос:
А чем фул не устраивает?
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 15 Ноябрь 2020, 19:48:29
сторонник фругал
Я тоже. см выше. Спор не про то, что лучше , что хуже. Надо оба применять по назначению
Свежий софт из репы - в арче решается или фул-ом или компиляцией
каждый раз мне почему-то задается вопрос
потому что вы хотите от фругала то, что проще получить от фул
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 17 Ноябрь 2020, 17:09:54
такие пакетные системы как snap, flatpak, AppImage, nix.
Есть еще OSTree, напоминающая git. Применяется в Fedora 33 (https://www.opennet.ru/opennews/art.shtml?num=53971).

Сложно, ссылки для некоторого понимания:
Справочная: чего ждать от Fedora Silverblue (https://habr.com/ru/company/it-grad/blog/460393/)
How to customize Fedora CoreOS for dedicated workloads with OSTree (Как настроить Fedora CoreOS для выделенных рабочих нагрузок с помощью OSTree) (https://developers.redhat.com/blog/2020/03/12/how-to-customize-fedora-coreos-for-dedicated-workloads-with-ostree/?sc_cid=7013a000002DTxFAAW)
Установка и использование Fedora Silverblue (https://losst.ru/ustanovka-i-ispolzovane-fedora-silverblue)


Пакет для Арча https://www.archlinux.org/packages/extra/x86_64/ostree/.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 18 Ноябрь 2020, 09:09:25
Есть еще OSTree, напоминающая git. Применяется в Fedora 33.
Вероятно подобное интересно юзерам LTS посмотреть свежий софт... Нам -то зачем?
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 05 Апрель 2022, 11:31:49
В продолжении темы создания модуля в сложных случаях (anydesk (https://forum.puppyrus.org/index.php?topic=19944.msg183486#msg183486)), когда простого действия ПМ (pacman) недостаточно, и для наглядной иллюстрации идеи (https://forum.puppyrus.org/index.php?topic=22719.msg172219#msg172219) betcher, выложу скрипт для chroot2pfs с форума (https://forum.magos-linux.ru/t/chroot2pfs-primery-skriptov/46) MagOS.

Код
 #!/bin/bash -e

    # Author: ilfat <http://forum.magos-linux.ru>

    export LANG=ru_RU.UTF-8

    mkdir /work && cd /work

    urpmi --auto --no-suggests \
            feh \
            fonts-ttf-unifont \
            i3-wm \
            lib64asound2 \
            lib64cairo2 \
            lib64curl4 \
            lib64glib2.0_0 \
            lib64gmodule2.0_0 \
            lib64iw29 \
            lib64jsoncpp19 \
            lib64mpdclient2 \
            lib64nl-genl3_200 \
            lib64pango1.0_0 \
            lib64pangocairo1.0_0 \
            lib64pulseaudio0 \
            lib64rsvg2_2 \
            lib64startup-notification-1_0 \
            lib64xcb1 \
            lib64xcb-ewmh2 \
            lib64xcb-randr0 \
            lib64xcb-util1 \
            lib64xcb-util-image0 \
            lib64xcb-util-keysyms1 \
            lib64xcb-xinerama0 \
            lib64xcb-xkb1 \
            lib64xcb-xrm0 \
            lib64xcb-xtest0 \
            lib64xdg-basedir1 \
            lib64xkbcommon0 \
            lib64xkbcommon-x11_0

    urpmi.recover --checkpoint
    CHECKPOINT_TIME=$(date "+%F %T")

    urpmi --auto --no-suggests \
            bdftopcf \
            bison \
            cmake \
            git \
            lib64asound-devel \
            lib64cairo-devel \
            lib64curl-devel \
            lib64iw-devel \
            lib64jsoncpp-devel \
            lib64mpdclient-devel \
            lib64nl3-devel \
            lib64pango1.0-devel \
            lib64pangocairo1.0-devel \
            lib64pulseaudio-devel \
            lib64rsvg2-devel \
            lib64startup-notification-1-devel \
            lib64xcb-cursor-devel \
            lib64xcb-devel \
            lib64xcb-util-devel \
            lib64xcb-util-image-devel \
            lib64xcb-util-keysyms-devel \
            lib64xcb-util-wm-devel \
            lib64xcb-xrm-devel \
            lib64xdg-basedir-devel \
            lib64xkbcommon-devel \
            lib64xkbcommon-x11-devel \
            libtool \
            x11-proto-devel

    # bspwm, sxhkd, xdo, xtitle
    git clone https://github.com/baskerville/bspwm.git
    git clone https://github.com/baskerville/sxhkd.git
    git clone https://github.com/baskerville/xdo.git
    git clone https://github.com/baskerville/xtitle.git
    cd bspwm && make && make install PREFIX=/usr
    cd ../sxhkd && make && make install PREFIX=/usr
    cd ../xdo && make && make install PREFIX=/usr
    cd ../xtitle && make && make install PREFIX=/usr
    cd ..
    install -Dm755 /usr/share/doc/bspwm/examples/bspwmrc /etc/skel/.config/bspwm/bspwmrc
    install -Dm644 /usr/share/doc/bspwm/examples/sxhkdrc /etc/skel/.config/sxhkd/sxhkdrc

    # siji font for polybar
    git clone https://github.com/stark/siji
    cd siji
    ./install.sh -d /usr/share/fonts
    cd ..

    # polybar
    git clone --recursive https://github.com/jaagr/polybar
    mkdir -p polybar/build && cd polybar/build
    cmake -DCMAKE_INSTALL_PREFIX=/usr ..
    make -j$(nproc) && make install
    cd /work
    install -Dm644 /usr/share/doc/polybar/config /etc/skel/.config/polybar/config

    # rofi
    git clone https://github.com/DaveDavenport/rofi
    cd rofi
    git submodule update --init
    autoreconf -i
    mkdir build && cd build
    ../configure --disable-check --libdir=/usr/lib64 --prefix=/usr
    make -j$(nproc) && make install
    cd /
    rm -rf /work

    urpmi.recover --auto --rollback "$CHECKPOINT_TIME"
    urpmi.recover --disable
    rm -rf /etc/rpm/macros.d

    rm -rf  /var/tmp  /var/cache/{urpmi,ldconfig}  /etc/{urpmi,ld.so.cache,localtime,machine-id,resolv.conf} \
    /var/lib/{rpm,urpmi,menu} /usr/share/applications/mimeinfo.cache  /.wh* 2>/dev/null
    find "/usr/share/icons" -type f -name icon-theme.cache 2>/dev/null | xargs rm -f
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: krasnyh от 05 Апрель 2022, 11:32:25
Когда betcher предложил свою идею, было не совсем понятно, зачем это, если pacman2pfs прекрасно устанавливает нужное приложение и затем упаковывает в модуль. Но..., мы знаем, что упаковывает только графический pacman2pfs.sh, консольный же pacman2pfs создает только папку, чтобы можно было вручную проделать необходимые действия - удалить лишние либы, добавить ярлыки, службы и т.д. и т.п. Вот здесь и могли бы пригодиться готовые скрипты в целях оптимизации модуля по размеру, и для отказа от ручных действий...


p.s. Просто мысли вслух.
Название: Re: pfs-get - консольный менеджер модулей.pfs .sfs
Отправлено: sfs от 06 Апрель 2022, 09:49:23
Кроме меня модули почти никто не создает. Мне и без этого норм
Если есть старый модуль - проще
Код
pacman2pfs `pfspkg старый.pfs`
Если интересно - делайте. По итогу подумаем как и куда такое пристроить...