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

Автор Тема: pfs-get - консольный менеджер модулей.pfs .sfs  (Прочитано 34190 раз)

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

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #30 : 21 Март 2020, 10:01:04 »
Давайте попробуем прикинуть алгоритм.
Запускаем:
getpfs nano
- проверяем в выхлопе aufs-n, если есть nano  выводим предупреждение с вопросом: "продолжить?"
- для каждой строки в списке реп. Сперва проверяем в списке модулей в репе, который был получен ранее. Если нет списка или не найдено nano в списке  получаем новый список из репы и ищем там.
- локальные папки тоже вносим в список реп и обрабатываемых также как удаленные. То есть в порядке перечисления в конфиге.
- если все ещё не найдено ищем в списке алиасов, то что предлагал выше. Можно даже нечеткий поиск прикрутить с agrep, чтоб находил даже если с ошибками написано. И выводит рекомендованные варианты.

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

Нормально?
« Последнее редактирование: 21 Март 2020, 10:08:22 от betcher »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #31 : 21 Март 2020, 10:06:31 »
Гуй вижу просто как окошко с вопросами, которые формируют cmdline для pfsget и запускает, по завершении снова окошко с результатами. Можно опционально запускать с xterm -e pfsget... Тогда будет видно весь процесс.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33966
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #32 : 21 Март 2020, 10:51:14 »
проверяем в выхлопе aufs-n, если есть nano  выводим предупреждение с вопросом: "продолжить?"
Тут скорее ошибка : модуль уже подключен
Если нет списка или не найдено nano в списке  получаем новый список из репы и ищем там.
Тут лучше через вопрос
Если репа только что обновлена - перечитывать смысла нет
Поиск идёт до первого найденного
Надо все + выбор из них.
что делать с модулем дальше зависит от ключей.
http://wiki.puppyrus.org/puppyrus/pr218/pfs3#open_pfs
Нормально?
C учетом замечаний - да
Гуй вижу просто как окошко с вопросами,
Можно и ntf , но вряд ли будет удобно
Именно гуй sfs-get - вполне намоленный и удобный (но не идеал)
Просто внутренности переписать
Можно опционально запускать с xterm -e pfsget... Тогда будет видно весь процесс.
У меня для этого есть гуй скрипт wt - выполняет скрипт и выводит результат

С источниками http ftp - под каждый сервер придется писать свой парсер
« Последнее редактирование: 21 Март 2020, 10:52:46 от sfs »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #33 : 21 Март 2020, 10:58:23 »
Тут скорее ошибка : модуль уже подключен
Может версия новее в репах.
Тут лучше через вопрос
Если репа только что обновлена - перечитывать смысла нет
Это стандартное поведение urpmi, если не нашёл обновлять источники.
Надо все + выбор из них.
Вариант с первым найденным быстрее. Если смотреть на пакетные менеджеры, то обычно ставит без вопросов самый свежий. Надо подумать, возможно не один вариант оставить.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33966
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #34 : 21 Март 2020, 11:03:07 »
С версией - как в ПМ хорошо, когда указано полное название модуля
Но тогда надо - как в ПМ и поиск по маске

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #35 : 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 изменение репы.

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

Сюда не укладываются только локальные модули, надо подумать как впилить.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33966
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #37 : 21 Март 2020, 13:04:41 »
У меня сейчас так и сделано :
sfs-get работает со списком , в котором уже пути http://....pfs
А его обновление - отдельная задача и тут опять под каждый ресурс свой парсер

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #38 : 21 Март 2020, 13:16:30 »
У меня сейчас так и сделано :
В списке реп не файлы, а папки. У списков просто постоянное имя?
Тогда где здесь список?
http://mirror.yandex.ru/puppyrus/roll/1912/

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

Как в Slackware

Не совсем. Предлагаю с полными путями сразу писать.
« Последнее редактирование: 21 Март 2020, 13:19:24 от betcher »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #39 : 21 Март 2020, 13:25:48 »
Предлагаю с полными путями сразу писать.
Смысл? $REPO должна уже быть в сборке. Остаётся добавить имя модуля.
Ещё раз прошу посмотреть, как сделано в Slackware, с подкаталогами.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33966
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #40 : 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

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #41 : 21 Март 2020, 13:31:24 »
Их читает mod-up , парсит папки и создает /tmp/mod_update/repolist.txt  - c которым далее и работает sfs-get
Значит вы меня совсем не поняли. Этот список должен лежать в репе. Сразу. По сути список и есть репа, а сами модули могут лежать где угодно, хоть на этом сервере, хоть на другом, хоть вообще дома если с битторентом заморочиться. Это, и Вам DdShuric ответ  на:
Смысл? $REPO должна уже быть в сборке. Остаётся добавить имя модуля.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #42 : 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
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33966
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #43 : 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
И получаем отвязку от места хранения

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33966
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfs-get - менеджер модулей.pfs .sfs
« Ответ #44 : 21 Март 2020, 13:36:16 »
curl -l ftp://mirror.yandex.ru/puppyrus/roll/1912/
С фтп на яндексе проблема. Надо http