Создание собственного репозитория Slackware

В прошлых статьях мы собрали рабочий стол 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

3 thoughts on “Создание собственного репозитория Slackware”

  1. На самом деле спасибо нужно сказать Эрику (Eric Hameleers), именно его gen_repos_files.sh используется для генерации метафайлов репозитория, от Frank Honolka там только 3 read и 3 echo для записи в genreprc, а также совершенно не нужный chmod +x 😉 на созданный файл (он читается по «source» aka «.», атрибут исполнения не нужен).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

12  ⁄    =  3