Содержание
Sfs-get. Менеджер модулей .pfs и .sfs
- Идея зародилась во время работы над LupuRus Bit.
- Начал было решать проблему ярлыков вынесенного в модули софта. По замыслу - при отсутствии - предложить скачать и установить. Увлекся, и написал менеджер модулей.sfs (MM)
- Последняя версия в PRA
Функционал
- Позволяет разместить свой репозиторий модулей на бесплатных общедоступных ресурсах
- Поиск локально или в репозитории по названию модуля
- Скачать модуль
- Подключить (выше, ниже базы, в память)
- Стартовать
- Отключить
Логика работы
- Ищет по названию пакета или его части файл локально (на hdd). Если находит - запускает
- Если не находит - ищет с maxdept=3 на подключенных носителях и в списке репозиториев /etc/sfs-get
- При нахождении предлагает загрузить , подключить и запустить
- Во всех конфигах можно экранировать строки : #
Ярлык для загрузки программы
- Можно делать ярлык (/usr/share/applications/*.desktop) для программы, которой нет в базе. Например Exec=sfs-get gpartedsfs-get doublecmd
- Название программы можно указывать не до конца. Версию и т.п. можно опускать.
- При его вызове произойдет запуск программы (если модуль уже подключен) или предложение скачать и запустить
Типы поддерживаемых репозиториев
В настоящее время (2018 г.) используются только WWW репозиторий
WWW репозиторий (ftp-http)
- Все совсем просто - добавляем файлы на ftp-http.
- Их список, обновление sfs-get делает сам
- Недостаток - требуется ftp-http , поддерживающий выдачу списка файлов wget –no-remove-listing . Такие бесплатные ресурсы редки.
Пример:
mirror.yandex.ru/puppyrus/pfs/packages-Icewm mirror.yandex.ru/puppyrus/pfs/packages-base
Конфиг
Наиболее функциональный вариант. Часть функционала пока не реализована (зависимости). Трудозатратность - самая большая. Синтаксис конфига сложноват. Специального редактора конфига нет.
- Использует любое www-хранилище с прямыми ссылками (например: https://one.ubuntu.com/).
- Ссылки должны скачиваться wget 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 репозиторий (список ссылок)
Наиболее прост в реализации и развертывании
- Ссылки - любые, которые сможет скачать 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
Эти же ссылке можно использовать в первом типе
Настройка новых репозиториев
Назначение файлов:
- /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
- Для выключения обновления - удалите (закомментируйте #) все в _up-links.txt
Зависимости
- sfs-get - это скрипт.
- Должен работать в любом frugal-aufs дистрибутиве
- Утилиты монтирования модулей можно менять в начале скрипта mnt_sfs
- Необходимо наличие в дистрибутиве :
- bash, grep, find
- gtkdialog >0.83 , yad
- wget. busybox wget - работать будет , но без прогрессбара загрузки