Краткое руководство по сборке пакета

Материал из ALT Linux Wiki


Данное HOWTO поможет вам самостоятельно создать свой пакет в дистрибутивах ALT Linux. Расширенную информацию о тонкостях сборки пакетов и их сопровождению вы можете найти в разделах и.

Подготовка к сборке пакета

Помимо желания собрать пакет вам необходимо:

  • Исходный код программы или библиотеки
  • Доступ к репозиторию
  • Сборочная среда

Исходный код

Исходный код для пакета вы можете скачать из Интернета. Положим, вы скачали архив с исходным кодом foo-1.2.3.tar.gz

Доступ к репозиторию

Для того, чтобы собрать пакет, потребуется доступ к репозиторию (будут нужны зависимые пакеты). Идеальный вариант — копия Sisyphus или необходимого бранча. Однако можно использовать и удалённый репозиторий. Организация доступа к репозиторию будет рассмотрена ниже.

Сборочная среда

1. Установите программы для сборки пакетов:

apt-get install rpm-build gear

2. Подготовьте место на жёстком диске. Минимум 2 Гб. Крайне рекомендуется производить сборку на файловой системе tmpfs — скорость сборки может вырасти в 3 раза! tmpfs использует память и файл подкачки, поэтому заранее подготовьте большой раздел (или, что хуже, файл) подкачки. Проверьте размер tmpfs в файле /etc/fstab:

tmpfs           /tmp                    tmpfs   nosuid,size=2300m               0 0

В данном случае параметр size=2300m устанавливает размер файловой системы в 2300 Мб (2,3 Гб). Если вы вносили изменения, то запустите

mount /tmp -o remount

3. Настройте .rpmmacros:

Создайте в домашнем каталоге файл .rpmmacros (обязательна точка в начале) примерно такого содержания:

%_packager Vasya Pipkin <pupkin@altlinux.org>

В этом файле также можно указать ключи подписи пакетов (если вы собираетесь выкладывать пакеты в репозитории), макросы сборки и прочие полезные параметры.

4. Подготовьте репозиторий Git. Это необходимое условие для правки уже существующих пакетов и просто удобно чтобы хранить ваши изменения. Рекомендуется создать отдельный каталог для всех репозиториев Git.

4.1. Если вы создаёте новый пакет «с нуля», для нашего пакета выполните в этом общем каталоге для сборки:

mkdir foo
cd foo
git-init

В каталоге foo создайте файл .gear-rules следующего содержимого:

tar.gz: foo

Распакуйте архив с исходным кодом:

gear-update -c /path/to/foo-1.2.3.tar.gz foo

Напишите .spec-файл (спек). Спек можно составить по примерам.

4.2. Если вы хотите собрать новую версию пакета существующего пакета...