Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015)

Материал из 0x1.tv

(перенаправлено с «20151018B»)

Аннотация

Докладчик
Виталий Липатов.jpg
Виталий Липатов

Чтобы прийти к качественной сборке пакетов за минимальное время, требуется пройти длительный путь, при этом учитывая происходящие изменения в процедуре сборки.

Набор команд из etersoft-build-utils и предлагаемые типовые практики помогают сократить порог вхождения и облегчить затраты на первичную и последующую сборку пакетов.

Видео

Слайды

Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf Как упрощается сборка пакетов в ALT Linux с помощью etersoft-build-utils (Виталий Липатов, OSSDEVCONF-2015).pdf

Расширенные тезисы

Чтобы собрать даже простой пакет, нужно знать и учесть множество нюансов. С приобретением опыта сборка пакетов начинает казаться несложной, но рутинной задачей. С целью упростить сборку пакетов, то есть скрыть мелкие подробности и выполнить за человека рутинные задачи, и создаётся уже более 10 лет набор утилит etersoft-build-utils.

Стоит упомянуть, что у каждого мантейнера с длительным опытом сборки пакетов собраны вспомогательные скрипты, которые ведомы только им, и не распространяются по причине их кустарности.

На самом деле собрать пакет очень просто. Берём git-репозиторий с пакетом и запускаем

$ rpmbb

если мы хотим собрать пакет в своей системе, или

$ rpmbsh

если мы хотим собрать пакет в hasher, или

$ rpmbs -u

если мы хотим отправить пакет на сборку в ALT Linux Sisyphus, или

$ rpmbph -b p7 -u

если мы хотим отправить пакет на сборку для ALT Linux p7.

При этом вам не нужно беспокоиться о временных коммитах, создании рабочего каталога для \Sys{hasher}, публикации репозитория, создании и публикации тэга для сборки, создании задания на сборку.

Но где же взять git-репозиторий с пакетом? Помимо очевидного решения с созданием такого репозитория с нуля самостоятельно, есть дополнительные пути:

Можно склонировать репозиторий из ALT Linux, если такой пакет уже собран:

$ rpmgp -g normalize

а можно посмотреть, нет ли такого пакета в других системах:

$ rpmgp -a normalize
List for altautoimports: 
   nodejs-normalize-package-data-0.2.1-alt1_1.src.rpm 
   ...
List for rosa2012: 
   normalize-0.7.7-11.src.rpm

и скачать его, указав полное название файла, а потом преобразовать в git-репозиторий:

$ rpmgp -a -d normalize-0.7.7-11.src.rpm && rpmgp -m normalize-0.7.7-11.src.rpm

Если нужную вам программу вы вчера написали сами, и она ещё не собрана ни в одну из популярных систем, придётся писать спек для сборки самому. Но ни в коем случае не пишите спек с нуля. Возьмите подходящий пример отсюда: https://www.altlinux.org/SampleSpecs или загрузите репозиторий другого, уже собранного в ALT Linux Sisyphus пакета и используйте его в качестве образца.

Если сборка пакетов всё ещё кажется вам сложной, просто создайте задачу на добавление нового пакета:

И когда кто-то соберёт пакет, вы сможете его скачать и улучшать, чтобы им можно было пользоваться. Или просто соберёте новую версию пакета командой

$ rpmrb 4.32

которая скачает и закоммитит новую версию исходников, произведёт изменения в спеке, обновив версию и добавив запись в changelog, проверит собираемость в локальном hasher и отправит на сборку в Сизиф в случае успеха.

Примечания и отзывы


Plays:45   Comments:0