Сборка rpm пакета с помощью mock — различия между версиями

Материал из Wiki AlterOS
Перейти к: навигация, поиск
(Создана пустая страница)
 
(Сборка RPM пакета)
 
(не показано 14 промежуточных версий 1 участника)
Строка 1: Строка 1:
  
 +
== Утилита Mock ==
 +
 +
 +
'''Mock''' — это простая программа, которая будет создавать исходные RPM внутри chroot.
 +
 +
Mock является утилитой для сборки пакетов RPM. Подходит для сборки пакетов в различных версиях CentOS/Red Hat и Fedora.
 +
 +
Chroot – операция изменения корневого каталога в ОС, предназначенная для создания нового окружения.
 +
 +
Содержимое корневого каталога определяется указанной конфигурацией с опцией -r. Файл конфигурации по умолчанию - /etc/mock/default.cfg, который обычно является символической ссылкой на одну из установленных конфигураций.
 +
 +
Основное преимущество использования mock вместо '''[https://wiki.alter-os.ru/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_rpm_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_rpmbuild rpmbuild]''' для сборки пакетов заключается в том, что mock собирает пакет RPM в чистой среде. Mock делает это, создавая chroot и выполняя сборку RPM в chroot.
 +
 +
Проверить наличие данной утилиты можно с помощью команды:
 +
 +
$ mock --version
 +
 +
Установка утилиты mock происходит при выполнении команды:
 +
 +
$ sudo yum install mock
 +
 +
'''Структура mock: ''mock [options]'''''
 +
 +
После [options] также может идти [команда], например, ''mock  [options] --chain SRPM [SRPM...]''
 +
 +
Параметры(options) для данной утилиты можно посмотреть с помощью команды:
 +
 +
$ mock --help
 +
 +
Для более подробной информации про утилиту mock и её команды можно с помощью:
 +
 +
$ man mock
 +
 +
Mock имеет свои файлы в следующих каталогах:
 +
 +
• /etc/mock — конфигурационные файлы;
 +
 +
• /var/lib/mock — каталог хранения chroot окружений и результатов сборки (Может быть очищен пользователем с помощью команды $ mock clean).
 +
 +
Файл конфигурации по умолчанию — /etc/mock/default.cfg, который обычно представляет собой символьную ссылку на одну из установленных конфигураций. В файле конфигурации указывается архитектура ЦП и версия chroot для Linux.
 +
 +
Файл конфигурации включает следующие данные:
 +
 +
config_opts['root'] = 'AlterOS-7.5-x86_64' // ''Опция, которая создает папку с названием 'AlterOS-7.5-x86_64' в папке mock''
 +
config_opts['target_arch'] = 'x86_64' // ''Опция, которая указывает целевую архитектуру процессора''
 +
config_opts['legal_host_arches'] = ('x86_64') // ''Архитектура хоста''
 +
config_opts['chroot_setup_cmd'] = 'install @buldsys-build' // ''Установка пакета 'buldsys-build'''
 +
и другие
 +
 +
== Сборка RPM пакета ==
 +
 +
Для сборки пакетов(SRPM и RPM) необходимо наличие исходных файлов и файла-конфигурации, подробнее о том, что нужно для сборки пакетов '''[https://wiki.alter-os.ru/index.php?title=%D0%A7%D1%82%D0%BE_%D0%BD%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D0%BE_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8_rpm_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0 можно посмотреть здесь.]'''
 +
 +
Структура команды для сборки пакета с исходниками(SRPM): mock [options] --buildsrpm {--spec spec --sources src --symlink-dereference | --scm-enable}
 +
 +
Чтобы собрать пакет с исходниками(SRPM), на основе которого потом будет собираться бинарный пакет(RPM) с помощью утилиты mock, необходимо выполнить команду:
 +
 +
$ mock -r <имя_файла_конфигурации> --buildsrpm --spec=путь/к/spec_файлу.spec --sources=путь/к/исходникам --resultdir=место/куда/должен/собраться/SRPM_пакет
 +
 +
-r - опция, которая использует конфигурацию chroot, как определено в файле /etc/mock/<confug>.cfg
 +
 +
После сборки SRPM необходимо собрать бинарный пакет(RPM) с помощью команды:
 +
 +
$ mock --rebuild путь/к/пакету_SRPM.src.rpm --resultdir=место/куда/должен/собраться/RPM_пакет
 +
 +
''Если в обеих командах не указывать '''--resultdir=''', то пакеты установятся в папку /mock/../result''
 +
 +
После этого необходимые пакеты будут собраны туда, куда вы указали в команде.
 +
RPM пакеты также можно собирать с помощью утилиты '''rpmbuild, [https://wiki.alter-os.ru/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_rpm_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_rpmbuild подробнее здесь]'''
 +
 +
[[Категория:AlterOS 7.X]]

Текущая версия на 08:34, 30 ноября 2021

Утилита Mock

Mock — это простая программа, которая будет создавать исходные RPM внутри chroot.

Mock является утилитой для сборки пакетов RPM. Подходит для сборки пакетов в различных версиях CentOS/Red Hat и Fedora.

Chroot – операция изменения корневого каталога в ОС, предназначенная для создания нового окружения.

Содержимое корневого каталога определяется указанной конфигурацией с опцией -r. Файл конфигурации по умолчанию - /etc/mock/default.cfg, который обычно является символической ссылкой на одну из установленных конфигураций.

Основное преимущество использования mock вместо rpmbuild для сборки пакетов заключается в том, что mock собирает пакет RPM в чистой среде. Mock делает это, создавая chroot и выполняя сборку RPM в chroot.

Проверить наличие данной утилиты можно с помощью команды:

$ mock --version

Установка утилиты mock происходит при выполнении команды:

$ sudo yum install mock

Структура mock: mock [options]

После [options] также может идти [команда], например, mock [options] --chain SRPM [SRPM...]

Параметры(options) для данной утилиты можно посмотреть с помощью команды:

$ mock --help

Для более подробной информации про утилиту mock и её команды можно с помощью:

$ man mock 

Mock имеет свои файлы в следующих каталогах:

• /etc/mock — конфигурационные файлы;

• /var/lib/mock — каталог хранения chroot окружений и результатов сборки (Может быть очищен пользователем с помощью команды $ mock clean).

Файл конфигурации по умолчанию — /etc/mock/default.cfg, который обычно представляет собой символьную ссылку на одну из установленных конфигураций. В файле конфигурации указывается архитектура ЦП и версия chroot для Linux.

Файл конфигурации включает следующие данные:

config_opts['root'] = 'AlterOS-7.5-x86_64' // Опция, которая создает папку с названием 'AlterOS-7.5-x86_64' в папке mock
config_opts['target_arch'] = 'x86_64' // Опция, которая указывает целевую архитектуру процессора
config_opts['legal_host_arches'] = ('x86_64') // Архитектура хоста
config_opts['chroot_setup_cmd'] = 'install @buldsys-build' // Установка пакета 'buldsys-build'
и другие

Сборка RPM пакета

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

Структура команды для сборки пакета с исходниками(SRPM): mock [options] --buildsrpm {--spec spec --sources src --symlink-dereference | --scm-enable}

Чтобы собрать пакет с исходниками(SRPM), на основе которого потом будет собираться бинарный пакет(RPM) с помощью утилиты mock, необходимо выполнить команду:

$ mock -r <имя_файла_конфигурации> --buildsrpm --spec=путь/к/spec_файлу.spec --sources=путь/к/исходникам --resultdir=место/куда/должен/собраться/SRPM_пакет

-r - опция, которая использует конфигурацию chroot, как определено в файле /etc/mock/<confug>.cfg

После сборки SRPM необходимо собрать бинарный пакет(RPM) с помощью команды:

$ mock --rebuild путь/к/пакету_SRPM.src.rpm --resultdir=место/куда/должен/собраться/RPM_пакет

Если в обеих командах не указывать --resultdir=, то пакеты установятся в папку /mock/../result

После этого необходимые пакеты будут собраны туда, куда вы указали в команде. RPM пакеты также можно собирать с помощью утилиты rpmbuild, подробнее здесь