Что необходимо для сборки rpm пакета
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-файл здесь