Збірка rpm-пакетів в mageia

Глава I. Складання rpm-пакету з початкових кодів якщо Mageia встановлена.

У цьому розділі розглянемо складання простого rpm-пакету з початкових кодів. Нам потрібен встановлений дистрибутив Mageia, його можна встановити також на віртуальну машину. Для збірки rpm-пакету буде потрібно інтернет.

Розглянемо складання найпростішого rpm-пакету xroot, збірка пакетів буде розглядатися з адміністративними привілеями (root-привілеями) в KDE, але краще якщо Ви будете збирати пакети під користувачем, виконуючи під root лише дії, на які у Вас не вистачить прав.

Почнемо з підключення джерел. У Центрі Управління Mageia-> Управління программамі-> Налаштування джерел установки / оновлення ПЗ натиснемо кнопку «Додати» і виберемо «Повний набір джерел» (на цей момент у Вас вже повинен бути доступ в інтернет):

Збірка rpm-пакетів в mageia

Далі відзначимо галочками всі пункти, крім пунктів містять слова «Testing» «Debug»:

Збірка rpm-пакетів в mageia

Збірка rpm-пакетів в mageia

Тепер через Установку і видалення програм встановіть пакети rpm-build (обов'язково) і gftp (необов'язково), не забудьте вказати фільтр пошуку «Всі», так як rpm-build - це не графічний пакет.

Збірка rpm-пакетів в mageia

Збірка rpm-пакетів в mageia

Зайдіть в термінал і напишіть команду

потім введіть пароль root (він вводиться, але не відображається):

Збірка rpm-пакетів в mageia

Розглянемо складання rpm-пакету в dolphin (Ви можете використовувати тільки консоль, але розглянемо все графічно), можна використовувати програму mc - будь-який файловий менеджер.

Створимо в каталозі / root каталог rpmbuild, тобто / root / rpmbuild / (якщо збирати пакети під користувачем, то каталог rpmbuild створюється в домашньому каталозі користувача: / home / користувач / rpmbuild /):

Збірка rpm-пакетів в mageia

Збірка rpm-пакетів в mageia

У каталозі / root / rpmbuild / створимо субкаталогі BUILD, BUILDROOT, RPMS, SOURCES, SPECS, SRPMS:

Збірка rpm-пакетів в mageia

Ми підготували складальну. Не забувайте очищати каталоги BUILD, BUILDROOT, RPMS, SOURCES, SPECS, SRPMS при складанні / перезібравши нового пакета.

Тепер завантажимо з інтернету вихідні програми xroot:

Збірка rpm-пакетів в mageia

Розглянемо складання xroot версії 0.0.4. Завантажені вихідні треба покласти в каталог / root / rpmbuild / SOURCES (в цей же каталог треба покласти патчі якщо вони є):

Збірка rpm-пакетів в mageia

Тепер перейдемо в каталог / root / rpmbuild / SPECS і створимо файл xroot.spec:

Збірка rpm-пакетів в mageia

Ми не випадково обрали xroot для вивчення збірки rpm-пакетів, так як цей пакет містить в собі всього 3 файлу: 1) виконуваний файл xroot 2) файл xroot.desktop, який потрібен щоб програма з'явилася в Меню 3) файл xroot.png, який потрібен щоб в Меню була картинка Тому spec-файл гранично простий. Щоб пакет був зібраний для Mageia Russian Community сховища необхідно дотримати вимогу цього сховища - вказівка ​​суфікса mrc.mga2, де 2-це версія Mageia. Для цього ми внесли в самий початок spec-файлу рядки:

Де rel - це номер пересборки пакета, а Release вказали як:

Збірка rpm-пакетів в mageia

Після того як spec-файл буде написаний, можна приступити безпосередньо до збірки rpm-пакету. Перебуваючи в каталозі / root / rpmbuild / SPECS / в dolphin під root можна натиснути кнопку F4 і з'явиться консоль:

Збірка rpm-пакетів в mageia

В консолі треба написати команду (не забувайте перевірити, що перебуваєте в каталозі / root / rpmbuild / SPECS /):

де xroot.spec - це ім'я spec-файлу.

Від нас вимагається встановити залежності, які необхідні для складання rpm-пакету. Для пакета xroot від нас зажадали libx11-devel, fpc-src, fpc.

Збірка rpm-пакетів в mageia

У цій же консолі можна ввести команду urpmi і через пробіл перерахувати ці залежності (або встановлювати по одному пакету):

Збірка rpm-пакетів в mageia

Збірка rpm-пакетів в mageia

Зовсім не обов'язково використовувати консольний urpmi для установки пакетів, можна скористатися графічним менеджером "Установка і видалення програм":

Збірка rpm-пакетів в mageia

З пошуку libx11-devel нічого знайти не вдалося (при цьому консольний urpmi знайшов), нічого страшного, змінимо критерій пошуку:

Збірка rpm-пакетів в mageia

Тепер ми знайшли потрібну залежність, поставимо галочку і натиснемо «Застосувати», погодимося з установкою. І так далі.

Збірка rpm-пакетів в mageia

Встановивши всі залежності, які від нас потрібні, знову виконаємо команду:

Збірка rpm-пакетів в mageia

Збірка пройшла успішно:

Збірка rpm-пакетів в mageia

Якщо все ОК, то готовий пакет знаходиться в папці / root / rpmbuild / RPMS /:

Збірка rpm-пакетів в mageia

А src.rpm - в папці / root / rpmbuild / SRPMS /:

Збірка rpm-пакетів в mageia

Залишилося залити в репозиторій:

Збірка rpm-пакетів в mageia

Глава II. Перезбірка rpm-пакету якщо Mageia встановлена.

У попередньому розділі ми, збираючи пакет з вихідних .tar.gz, отримали на виході пакет .src.rpm. Цей пакет .src.rpm хороший тим, що він містить в собі все необхідне для пересборки пакету: вихідні, патчі, spec-файл. Завдання зводиться до того, щоб витягти все це, розкласти по директоріях збірки, поправити spec-файл і просто пересобрать.

Відкрити пакет .src.rpm можна за допомогою будь-якого архіватора (наприклад, ark, file-roller) або mc.

Виділимо мишкою то, що треба витягти і розпакуємо:

Збірка rpm-пакетів в mageia

Збірка rpm-пакетів в mageia

Збірка rpm-пакетів в mageia

Якщо користуватися mc, то треба зайти також в CONTENTS.cpio:

Збірка rpm-пакетів в mageia

Збірка rpm-пакетів в mageia

spec-файл копіюємо в / root / rpmbuild / SPECS /, а все інше в / root / rpmbuild / SOURCES.

Тепер треба привести spec-файл до вимог сховища та пересобрать пакет як то було описано в першому розділі.

Глава III. Додавання патча методом заміни, локалізація rpm-пакету.

Часто потрібно змінити в исходниках один з файлів на інший, наприклад, змінити файл локалізації ru.po.

Припустимо, у нас вже є свій файл ru.po, яким треба замінити ru.po в оригінальному исходнике. Для цього треба покласти в папку SOURCES файл ru.po, а в spec-файлі вписати (після Source вказати будь-яку вільну цифру):

У секції% prep написати куди скопіювати ru.po (в даному випадку це% SOURCE1) щодо кореня розпакованого исходника:

Після цього зібрати rpm-пакет.

Схожі статті