В прошлых статьях мы собрали рабочий стол Cutefish, доработались до установщика Slackware и много всего сделали. Теперь нужно разобраться, как создавать собственный репозиторий пакетов.
Конечно в Slackware можно и не использовать репозиторий. Пакеты прекрасно устанавливаются из локальной папки, а пакетный менеджер slackpkg+ умеет подключать в качестве репозитория локальную папку. А так же вполне нормальным считается распространять репозиторий со Slackbuild-скриптами. Тем не менее если хочется предоставлять готовые пакеты с возможностью обновления нужен репозиторий.
Создание репозитория
На самом деле есть уже готовое решение (скрипт) от Frank Honolka, а если быть точным то это форк скрипта Eric «alienbob» Hameleers. Им я и воспользуюсь. Закачиваем, распаковываем.
wget https://gitlab.com/slackernetuk/slack-desk/-/raw/master/scripts/slackrepo.tar.xz
tar xvJf slackrepo.tar.xz
cd slackrepo
./gen_genreprc.sh
Но перед созданием самого репозитория нужно сгенерировать gpg key
. В процессе создания скрипта я все ответы оставил по умолчанию.
gpg --gen-key
Далее создаем репозиторий и файл описания репозитория командой:
./gen_genreprc.sh
Отвечаем на вопросы и смотрим результат. Будет создана папка с именем проекта (имя должно быть без пробелов) и файл genreprc с введенными параметрами (именем и почтой). По сути это только подготовка.
Тут есть один важный момент.: REPOOWNER в файле genreprc должен полностью совпадать с uid который был задан при генерации ключа. Иначе ключ будет не найден. Посмотреть uid можно командой:
gpg --list-keys
И поскольку uid составной из имени + почта + комментарий его проще вручную скопировать и вставить в genreprc.
Теперь в созданную папку репозитория нужно положить необходимые пакеты и запустить основной скрипт:
./gen_repos_files.sh
Если вы ничего не напутали с ключом, то после ввода пароля, который указывали при генерации ключа начнется создание файлов для репозитория:
--> Generating .txt file for cutefish-calculator-0.4-2-g9f18958-x86_64-1_snuk.tgz
--> Generating .meta file for cutefish-calculator-0.4-2-g9f18958-x86_64-1_snuk.tgz
--> Generating .lst file for cutefish-calculator-0.4-2-g9f18958-x86_64-1_snuk.tgz
--> Generating .asc file for cutefish-calculator-0.4-2-g9f18958-x86_64-1_snuk.tgz
--> Generating .md5 file for cutefish-calculator-0.4-2-g9f18958-x86_64-1_snuk.tgz
--> Generating .txt file for cutefish-core-0.4-12-gfe0f3b5-x86_64-1_snuk.tgz
--> Generating .meta file for cutefish-core-0.4-12-gfe0f3b5-x86_64-1_snuk.tgz
--> Generating .lst file for cutefish-core-0.4-12-gfe0f3b5-x86_64-1_snuk.tgz
--> Generating .asc file for cutefish-core-0.4-12-gfe0f3b5-x86_64-1_snuk.tgz
--> Generating .md5 file for cutefish-core-0.4-12-gfe0f3b5-x86_64-1_snuk.tgz
Вот такая структура файлов будет создана:
На этом все файлы для репозитория созданы. Помните, что для работы со сторонними репозиториями нужен пакетный менеджер slackpkg+.
wget https://slakfinder.org/slackpkg+15/pkg/slackpkg+-1.7.7-noarch-1mt.txz
installpkg slackpkg+-1.7.7-noarch-1mt.txz
Подробнее установку и настройку я уже описывал в этой статье.
Хостинг
Я по началу думал, что для внешнего репозитория, потребуется полноценный ftp сервер на VDS и придется разворачивать Slackware. Но оказалось все намного проще. Достаточно виртуального хостинга. На котором нужно создать папку в папке с доменом, а затем скопировать в неё все файлы из репозитория.
slackpkg update gpg
slackpkg update
slackpkg install-new
slackpkg upgrade-all
На самом деле спасибо нужно сказать Эрику (Eric Hameleers), именно его gen_repos_files.sh используется для генерации метафайлов репозитория, от Frank Honolka там только 3 read и 3 echo для записи в genreprc, а также совершенно не нужный chmod +x 😉 на созданный файл (он читается по «source» aka «.», атрибут исполнения не нужен).
Ах да, первоисточник:
http://www.slackware.com/~alien/tools/
Hi there, I enjoy reading all of your article post. I like to write a little comment to support
you.
Here is my page: maeng da (http://www.bellevuereporter.com)
Hey there! Woupd you mind if I share your blog with my twitter group?
There’s a lot off people that I think would
really appreciate your content. Please let me know. Thank you
php patterns