Что необходимо для сборки rpm пакета

Материал из Wiki AlterOS
Версия от 13:24, 11 октября 2021; DenisovaA (обсуждение | вклад) (Подготовка исходников)

Перейти к: навигация, поиск

RPM-пакет — это просто файл, содержащий другие файлы и информацию о них, необходимую для системы. Менеджер пакетов rpm использует эти метаданные для определения зависимостей, места установки файлов и другой информации.

Существует два типа rpm-пакетов:

  • SRPM (исходники с расширением .src.rpm)
  • RPM (бинарный файл с расширением .rpm)

Они имеют разное содержимое и служат для разных целей.

SRPM обязательно содержит исходный код, опционально — патчи и spec-файл, который описывает, как собрать исходный код в бинарный RPM. Бинарный RPM содержит бинарные файлы, созданные из исходников и патчей, если таковые имелись.

Сборку rpm-пакетов крайне нежелательно проводить с правами суперпользователя (root). Настоятельно рекомендуется все манипуляции производить с правами непривилегированного пользователя, поскольку при сборке с правами root имеется высокая вероятность повреждения системы.


Сборка пакетов выполняется с помощью утилиты rpmbuild или mock. Также могут потребоваться пакеты gcc/g++ и make (если они ещё не установлены), поэтому для их установки выполняем команду:

$ sudo yum install gcc make

• gcc - компилятор языка программирования Си.

• g++ - компилятор языка программирования C++.

• make - утилита для организации сборки нескольких файлов.


Подготовка исходников

Исходники должны находиться в папке SOURCES и содержать тарболы(архивы) и патчи (при необходимости). Тарболы содержат файл с исходным кодом программы (например, код, написанный на языке Си или С++ с соответствующим расширением) и makefile (файл, содержащий инструкцию по компиляции и линковке кода с помощью утилиты make).

Сборка = компиляция (файл с исходным кодом -> объектные файлы) + линковка (объектные файлы -> исполняемый файл).

Исходники также можно взять из открытого источника, указав при этом сайт в spec-файле. Следующий необходимый элемент — это spec-файл, инструкция, по которой rpm-build производит сборку пакета. Spec-файл должен находиться в папке SPECS. Подробнее про spec-файл здесь