Сборка пакетов start: различия между версиями
Строка 30: | Строка 30: | ||
===Настройка Git=== | ===Настройка Git=== | ||
===Настройка Hasher=== | ===Настройка Hasher=== | ||
====Добавление пользователя в группу==== | |||
Из-под под root: | |||
<pre> | |||
$ su - | |||
# hasher-useradd <существующий пользователь> | |||
</pre> | |||
Например: | |||
<pre># hasher-useradd petr</pre> | |||
====Создание конфигурационного фала==== | |||
Так же необходимо создать пользователю в домашнем каталоге файл {{path|.hasher/config}}: | |||
<pre> | |||
$ mkdir ~/.hasher | |||
$ echo 'packager="Petya Ivanov <petyaivanov@altlinux.org>"' >~/.hasher/config | |||
</pre> | |||
===Настройка Gear=== | ===Настройка Gear=== | ||
===Настройка окружения RPM=== | ===Настройка окружения RPM=== |
Версия от 19:34, 4 октября 2023
Возможно будет дорабатываться статья Сборка пакета с нуля
Подготовка
Инструменты для сборки
В ALT Linux для сборки есть два инструмента.
- Hasher - для сборки в изолированном окружении.
В chroot ставится базовый комплект пакетов и пакеты, необходимые для сборки (поле BuildRequires в спеке).
Если какой-то пакет для сборки не указан в спеке, то появится ошибка. Так обеспечивается чистота сборки.
Обратной стороной является необходимость иметь доступ к репозиторию, так как пакеты ставятся при каждой сборке в Hasher.
- Gear - для сборки пакетов из репозитория Git.
В этом случае все файлы лежат в распакованном виде и в src.rpm упаковываются по правилам, определённым в .gear/rules.
Это позволяет работать сразу с содержимым, быстро делать патчи, вести историю изменений и обмениваться изменениями при коллективной разработке.
Установка инструментов для сборки
Для сборки пакетов нам понадобятся:
- Любой удобный текстовый редактор (Vim, Emacs, Mcedit);
- Система управления версиями Git
- Сборочная среда Hasher
- Инфраструктура Gear
- Доступ к репозиторию пакетов
Установка:
# apt-get install mcedit hasher hasher-priv git gear rpm-utils rpm-build rpm-build-licenses
Настройка Git
Настройка Hasher
Добавление пользователя в группу
Из-под под root:
$ su - # hasher-useradd <существующий пользователь>
Например:
# hasher-useradd petr
Создание конфигурационного фала
Так же необходимо создать пользователю в домашнем каталоге файл .hasher/config:
$ mkdir ~/.hasher $ echo 'packager="Petya Ivanov <petyaivanov@altlinux.org>"' >~/.hasher/config
Настройка Gear
Настройка окружения RPM
Виды сборки пакетов
Создание пакета с нуля
Подготовка репозитория Git
Написание .gear/rules
Импорт исходного кода
Написание спека
Сборка в Hasher
Отправка в git.alt
Создание пакета на основе существующего
Сборка пакета из srcrpm
В ALT Linux кроме обычных пакетов есть пакеты с исходным кодом (имеют расширение *.src.rpm).
Такой пакет содержит:
- архив (один или несколько) с исходным кодом
- файл Spec (далее — просто спек)
- возможно, разнообразные патчи и дополнения.
Пакет *.src.rpm можно использовать только для сборки двоичных пакетов, но не установки.
Сборка осуществляется командой:
rpmbuild --rebuild package.src.rpm
В итоге получится готовый *.rpm-пакет который можно установить командой:
# rpm -Uvh package.rpm
Глоссарий
- Gear - инструмент, позволяющий оперируя данными из git репозитория проводить сборку исходного текста в rpm пакет,тарболл или просто экспортировать результаты выполненияправил (gear-rules) в определённый каталог.
- Hasher - инструмент безопасной и воспроизводимой сборки пакетов. Все пакеты Sisyphus собираются с его помощью.
- Исходный код - часть программного обеспечения, с которой программисты работают, чтобы изменить работу приложения или добавить новые функции.
- Патч (Patch) - программное средство, используемое для устранения проблем в программном обеспечении или изменения его функциональности
- Спек (Spec) - файл содержащий инструкции для программы rpmbuild, необходимые для сборки пакета.