Створення rpm пакета з вихідних, for unix users

Створення rpm пакета з вихідних

Спосіб установки пакетів з вихідних за допомогою make install має кілька недоліків, а саме це пізніше заважає оновлень, засмічує систему, ускладнює контроль версій ПЗ і т.д. У багатьох дистрибутивах Лінукс для управління ПО використовується RPM (Red Hat Package Manager), який дозволяє встановлювати, видаляти і оновлювати програмне забезпечення.

У цій статті ми розглянемо спосіб збирання rpm пакетів з вихідних. Збірку пакету будемо виробляти в дистрибутиві RHEL6, а в якості початкових кодів використовувати keepalived-1.2.15.tar.gz

RPM-пакети діляться на пакети з вихідними кодами - src.rpm і пакети, готові до установки -% .rpm. У src.rpm пакетах міститься вихідний тарболл (исходник програми), будь-які інші вихідні, пачті і найголовніший spec-файл, який керує процесом складання. Всі ці файли упаковані в cpio архів. Коли ви спробуєте увійти в src.rpm пакет за допомогою файлового менеджера mc, ви його побачите. Також в пакеті присутній деякі файли з інформацією.

У% .rpm-пакетах міститься cpio-архів з файлами, які після установки разложатся за відповідними каталогами, файли інформації і настановні скрипти.

Збирати пакети можна з-під будь-якого користувача. Робити це з-під root'а не рекомендується, тому що є ймовірність, що коренем для секції інсталяції виявиться каталог / і тоді команда rm -rf% видалить кореневі файли. Також буває, що «криві» пакети не правильно виконують інсталяцію, і ставляться не в тимчасовий каталог, а прямо кудись в% (/ usr). Частина файлів в цьому випадку може бути втрачена, хоча на працездатності пакета на цій машині це не позначиться.

Створимо для зборки пакета користувача testrpm:

Для складання пакетів необхідна наявність утиліти rpmbuild. Встановимо її:

В домашній директорії необхідно створити структуру каталогів, яку ми будемо испльзовать для зборки пакета. Зробити це можна двома способами. Безпосередньо створивши каталоги:

Або ж скориставшись командою rpmdev-setuptree (входить в пакет rpmdevtools):

Розміщуємо файл з кодами keepalived-1.2.15.tar.gz в папці

Далі необхідно створити або відредагувати .spec файл, в якому описаний процес і параметри збірки rpm-пакету. В архіві з файлами keepalived-1.2.15.tar.gz вже є приклад .spec файлу:

Пояснення часто використовуваних областей в .spec файлі

/ Rpmbuild / SOURCES. Патчів може бути кілька.
BuildRoot: Місце, виділене для компіляції і установки початкових кодів програми під час виконання процесу «% install».
BuildRequires: Список необхідних додатків для зборки пакета (через кому). Автоматично не визначаються.
Requires: Список необхідних додатків для роботи після установки (через кому). У більшості випадків визначаються автоматично rpmbuild.
.escription: Опис програми, рядки не повинні бути довшими 80 символів.
% Prep: Скрипти для підготовки програми, розпакування і підготовки до складання.
% Build: Скрипти для збірки програми, компіляції та підготовки до установки.
% Install: Скрипти для установки програми, команди скопіюють файли з «build directory»% (яка знаходиться

/ Rpmbuild / BUILD) в директорію buildroot%, яка обино знаходиться в / var / tmp.
% Clean: Інструкції для очищення buildroot, наприклад,
rm -rf%
% Files: Список встановлюваних файлів.
% Changelog: Зміни в програмі.

Ми відредагуємо тільки шлях до установочних файлів:

Коли все готово, запускаємо компіляція і створення RPM:

В результаті буде створений .rpm пакет і .src.rpm

Встановити пакет в систему можна командою:

Схожі статті