Краткое руководство по сборке пакета
Данное 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. Если вы хотите собрать новую версию пакета существующего пакета...