====== Sfs-get. Менеджер модулей .pfs и .sfs ====== [[puppyrus/pfs|Работа с модулями .pfs .sfs]] *Идея зародилась во время работы над [[http://forum.puppyrus.org/index.php/board,139.0.html|LupuRus Bit]]. *Начал было решать проблему ярлыков вынесенного в модули софта. По замыслу - при отсутствии - предложить скачать и установить. Увлекся, и написал менеджер модулей.sfs (MM) *Далее был доработан и использовался в [[http://forum.puppyrus.org/index.php/topic,12651.0.html|SFSl]], ПапиРус21 Байт[[http://forum.puppyrus.org/index.php/topic,12564.msg67171.html|006a]],[[http://forum.puppyrus.org/index.php/topic,13284.0.html|008]], [[http://forum.puppyrus.org/index.php/topic,13843.0.html|AF]] *Последняя версия в LF* *[[http://forum.puppyrus.org/index.php/topic,11021.msg60702.html#msg60702|Обсуждение]] ====== Функционал ====== *Позволяет разместить свой репозиторий модулей на бесплатных общедоступных ресурсах *Поиск локально или в репозитории по названию модуля *Скачать модуль *Подключить (выше, ниже базы, в память) *Стартовать *Отключить ====== Логика работы ====== *Ищет по названию пакета или его части файл локально (на hdd). Если находит - запускает *Если не находит - ищет с maxdept=3 на подключенных носителях и в списке репозиториев /etc/sfs-get *При нахождении предлагает загрузить , подключить и запустить *Во всех конфигах можно экранировать строки : # ====== Ярлык для загрузки программы ====== *Можно делать ярлык (/usr/share/applications/*.desktop) для программы, которой нет в базе. Например //Exec=sfs-get gpartedsfs-get doublecmd// *Название программы можно указывать не до конца. Версию и т.п. можно опускать. *При его вызове произойдет запуск программы (если модуль уже подключен) или предложение скачать и запустить ====== Конфигурация репозиториев====== Назначение файлов: */etc/sfs-get/*-list.txt - списки соответветствующих (конфиг, url, www репозиториев) именно Вашего дистрибутива */etc/sfs-get/links/_up-links.txt - URL ссылки на скачивание *.bz2 файлов обновления соответствующих списков. *Например http://qwe.ru/pra-links.txt.bz2 обновит /etc/sfs-get/links/pra-links.txt *Для выключения обновления - удалите (закомментируйте #) все в /etc/sfs-get/links/_up-links.txt ====== Типы поддерживаемых репозиториев ====== *C 2018 г. используются только WWW репозиторий. *git.com тоже рабочий ===== WWW репозиторий (ftp-http) ===== *Все совсем просто - добавляем файлы на ftp-http. *В /etc/sfs-get/www.list добавляем свой http *Их список, обновление sfs-get делает сам *Недостаток - требуется ftp-http , поддерживающий выдачу списка файлов //wget --no-remove-listing// . Такие бесплатные ресурсы редки. Пример: mirror.yandex.ru/puppyrus/pfs/packages-Icewm mirror.yandex.ru/puppyrus/pfs/packages-base ===== github.com репозиторий ===== *Реализован в версиях sfs-get >= 221130 *Модули.pfs нужно заливать в Releases. Только сюда можно залить файлы больше 25мб *В /etc/sfs-get/www.list добавляем api.github.com/repos/аккаунт/репозиторий/releases/tags/таг Пример: api.github.com/repos/sfs-pra/portable/releases/tags/portable64-23 api.github.com/repos/sfs-pra/portable/releases/tags/portable64 ===== Конфиг ===== Наиболее функциональный вариант. Часть функционала пока не реализована (зависимости). Трудозатратность - самая большая. Синтаксис конфига сложноват. Специального редактора конфига нет. *Использует любое www-хранилище с прямыми ссылками (например: https://one.ubuntu.com/). *Ссылки должны скачиваться wget [[wpru>URL]]. Поэтому с mediafire и т.п. не получится. *В URL не обязательно иметь имя программы. Оно будет в конфиге */etc/sfs-get/sfs.list - список используемых репозиториев *Cоздавать можно только в текст. редакторе. Пример: #1. название \ #2. версия \ #3. url \ #4. filename \ #5. md5sum \ #6. раздел(как в меню пуск) \ #7. альтернативы \ #8. размер Мб \ #9. зависимости \ #10. комментарий \ #11. проверен под Браузер ;\ ;\ http://ubuntuone.com/75TTZ5LUS2CWpAPKCwsdsU ;\ firefox_7.0.1ab_520.sfs ;\ ;\ Интернет ;\ firefox chromium-browser opera midori dillo links lynx ;\ 17 ;\ ;\ ;\ LupuRus520 SFSL Slacko5.3 doublecmd ;\ 0.5.0-1.gtk2.i386.lite ;\ http://ubuntuone.com/p/1F2w/ ;\ doublecmd_0.5.0-1.gtk2.i386.lite.sfs ;\ ;\ Файловая система ;\ ;\ 5 ;\ ;\ ;\ LupuRus520 SFSL Slacko5.3 *Пока обрабатываются только поля 1,3,4,7. Остальные - на перспективу. Затейливый формат - для удобства редактирования. *Вместо непосредственно программы, можно предлагать целый класс с альтернативами (см. Браузер) в sfs-user.list ===== URL репозиторий (список ссылок) ===== Наиболее прост в реализации и развертывании *Название файла со ссылками (без путей) в /etc/sfs-get/links.list. Этот файл находится в /etc/sfs-get/ *Ссылки - любые, которые сможет скачать wget. *Имена файлов - не хэши. Т.к. конфига здесь нет - по URL нужно будет понять название программы и версию Пример: http://dl.dropbox.com/u/84540362/puppyrus/packages-pfs/abiword-2.9.1-i486.pfs http://cdn.2safe.com/523226033048/OPERA-12.15f-s01.pfs Эти же ссылке можно использовать в первом типе ====== Зависимости ====== *sfs-get - это скрипт. *Должен работать в любом frugal-aufs дистрибутиве *Утилиты монтирования модулей можно менять в начале скрипта //mnt_sfs// *Необходимо наличие в дистрибутиве : *bash, grep, find *gtkdialog >0.83 , yad *wget. busybox wget - работать будет , но без прогрессбара загрузки