Что необходимо для сборки rpm пакета — различия между версиями
(→Подготовка исходников) |
DenisovaA (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | |||
+ | RPM-пакет — это просто файл, содержащий другие файлы и информацию о них, необходимую для системы. Менеджер пакетов rpm использует эти метаданные для определения зависимостей, места установки файлов и другой информации. | ||
+ | |||
+ | Существует два типа rpm-пакетов: | ||
+ | * SRPM (исходники с расширением .src.rpm) | ||
+ | * RPM (бинарный файл с расширением .rpm) | ||
+ | |||
+ | Они имеют разное содержимое и служат для разных целей. | ||
+ | |||
+ | SRPM обязательно содержит исходный код, опционально — патчи и spec-файл, который описывает, как собрать исходный код в бинарный RPM. Бинарный RPM содержит бинарные файлы, созданные из исходников и патчей, если таковые имелись. | ||
+ | |||
+ | ''Сборку rpm-пакетов крайне нежелательно проводить с правами суперпользователя (root). Настоятельно рекомендуется все манипуляции производить с правами непривилегированного пользователя, поскольку при сборке с правами root имеется высокая вероятность повреждения системы.'' | ||
+ | |||
+ | |||
Сборка пакетов выполняется с помощью утилиты rpmbuild или mock. | Сборка пакетов выполняется с помощью утилиты rpmbuild или mock. | ||
Также могут потребоваться пакеты gcc/g++ и make (если они ещё не установлены), поэтому для их установки выполняем команду: | Также могут потребоваться пакеты gcc/g++ и make (если они ещё не установлены), поэтому для их установки выполняем команду: | ||
Строка 9: | Строка 23: | ||
• make - утилита для организации сборки нескольких файлов. | • make - утилита для организации сборки нескольких файлов. | ||
− | |||
− | |||
Версия 13:09, 11 октября 2021
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-файл здесь