Сборка пакета с помощью утилиты rpmbuild

Abdula аватар

Сборка пакета с помощью утилиты rpmbuild

Утилита rpmbuild устанавливается вместе с пакетом rpmrebuild.
Для ее работы понадобятся установить программы make и automake.

Сборку пакетов желательно проводить не под рутом, а под любым другим пользователем, например, build.
При работе утилиты rpmbuild в домашнем каталоге образуется папка /rpmbuild с деревом:

  1. /BUILD
  2. /BUILDROOT
  3. /RPMS
  4. /SOURCES
  5. /SPECS
  6. /SRPMS

Базовый синтаксис использования утилиты rpmbuild:

rpmbuild -bСтадия_сборки имя_пакета.spec

Опция -b указывает на режим сборки.
Второй ключ после -b говорит, до какой стадии осуществлять процесс.
Возможные стадии процесса рассмотрены ниже.

rpmbuild -ba имя_пакета.spec #Собрать бинарный пакет и пакет с исходным кодом

rpmbuild -bb имя_пакета.spec #Собрать бинарный пакет

rpmbuild -bc имя_пакета.spec #Скомпилировать программу, но не собирать rpm-пакет, то есть выполнить до секции %build включительно

rpmbuild -bp имя_пакета.spec #Выполнить подготовку и остановиться сразу после завершения стадии %prep

rpmbuild -bi имя_пакета.spec #Выполнить сборку бинарного пакета и остановиться сразу после завершения стадии %install

rpmbuild -bl имя_пакета.spec #Выполнить проверку списка файлов для пакета и вывести резюме ошибок, если корневой каталог сборки не содержит каких-то файлов из списка

rpmbuild -bs имя_пакета.spec #Собрать только пакет с исходным кодом

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

Для указания некоторых характеристик сборки нужно создать файл конфигурации сборки:

  1. # Данные сборщика
  2. %vendor ABDULA
  3. %packager Abdula <abdula AT mail POINT ru>
  4. # Следующая строка отключает создание пакета debuginfo, который используется некоторыми отладчиками. Нам он не нужен.
  5. # %debug_package %{nil}
  6. # %_enable_debug_packages 0
  7. # Указываем каталог, в котором будет происходить сборка ядра, а также всех пакетов программой rpmbuild.
  8. %_topdir        /home/abdula/src/
  9. # Указывает каталог для хранения временных файлов, создающихся во время сборки пакетов
  10. %_tmppath       %{_topdir}/tmp
  11. %_signature      gpg
  12. %_gpg_name       Abdula (home desk) <abdula AT mail POINT ru>
  13. %_gpg_path       %(echo "$HOME")/.gnupg
  14. %dist            .centos5

Собранные пакеты собираются в каталоге /RPMS

RSS-материал