Даний документ описує систему збирання SUSE і є посібником по збірці RPM пакетів для openSUSE. Ця інформація допоможе вам створити своє власне оточення для складання пакетів. Перші чотири частини цього документа описують як все працює після чого йдуть приклади які ви можете спробувати самі.
Увага, це керівництво не про службу збірки openSUSE, навчальний посібник по службі збірки перебувати в Build Service / Tutorial.
необхідні знання
Ви повинні добре розуміти процес створення RPM пакетів. Метою даного документа не є стати заміною документації RPM. Існує багато різних HOWTO Підручники і книги присвячені цьому шукайте в розділі Ресурси посилання які відносяться до RPM.
Ви повинні також мати певний досвід роботи з PGP утилітами, особливо з GNU Privacy Guard (gpg) як з найбільш широко використовуваною реалізацією OpenPGP. Ми розповімо пізніше навіщо необхідний PGP, коли будемо говорити про підписуванні пакетів. Для підписування пакетів вам буде необхідний власний PGP ключ перед тим як ви почнете використовувати своє openSUSE оточення для збірки.
І, звичайно, вам слід бути знайомими зі структурою вихідного коду який ваш проект використовує для побудови пакета. Структура збірки openSUSE може вирішувати деякі часті помилки які здійснюють мейтейнери пакетів, але знання make. autoconf. imake або інших механізмів конфігурації вихідного коду може бути корисно при роботі з пакетами.
вимоги
Тут все просто. Вам необхідні 3 Гб дискового простору і наш інструмент збірки, build. Це все.
Вам необхідно 3 Гб тому що структура збірки SUSE використовує окрему інсталяцію Linux на вашому жорсткому диску як середовище для складання вашого пакета. Це ізольоване оточення дає одну велику перевагу: Збірка пакета не торкнеться вашої поточну Linux інсталяцію. Єдиний мінус це те що вам необхідно (тимчасово) 3 Гб дискового простору для кожної окремої середовища збірки. Але з сьогоднішніми обсягами жорстких дисків це не повинно стати проблемою.
Утиліта збірки встановлює середу збірки в заданий розташування і збирає пакет в цьому середовищі. Середовище зборки є базовою систему і будь-які додаткові пакети, які ви вкажете в RPM spec файлі.
Наступні кроки описують нормальний процес складання пакета. Звичайно, в реальному прикладі ви можете отримати помилку на будь-якому етапі і вам необхідно повторювати його до тих пір поки помилки не зникнуть. Даний посібник дає вам уявлення про те що ви повинні отримати.
Крок Один - Установка залежностей
Встановіть наступні пакети з джерела установки openSUSE використовуючи YaST, якщо вони ще не встановлені:
Крок Два - Конфігурація Складання
Налаштуйте утиліту build. Ось кілька налаштувань які ви повинні змінити в відповідність з вашим локальним оточенням. наприклад:
- де знаходяться пакети для установки середовища збірки
- ім'я директорії використовуваної як корінь збірки
та інші подібні налаштування
Крок Три - Створення вихідної директорії
Створіть директорію де-небудь, щоб вона була доступна вам і суперкористувачеві. Це місце де ви розмістите файли, які будуть використані в процесі складання пакета. Ви можете використовувати будь-яке розташування, яке захочете. Але все ж воно має бути доступне вам і суперкористувачеві, тому що тільки привілейований користувач може почати установку середовища збірки. Але якщо ви не хочете весь час працювати над пакетом суперкористувачем вам необхідно загальнодоступне розташування.
Крок Чотири - Отримайте вихідні тексти проекту
Отримання вихідних текстів проекту необхідно для складання пакета. Більшість проектів надають вихідні тексти в архівах.
Крок П'ять - Створіть spec файл
Тепер у вас є вихідні тексти і можна переходити до звичайного процесу створення RPM пакета. Створіть spec файл для пакета.
Крок Шість - Зберіть ваш пакет
Крок Сім - Протестуйте пакет
Після того як збірка успішно завершиться ви повинні перевірити працездатність вашого пакета.
RPM специфікації повинні бути написані відповідно до угоди по стилю RPM-пакетів openSUSE. Так як ця тема дуже широка сама по собі є додаткова документація описує її. Будь ласка, ретельно дотримуйтесь даними Документів, розробляючи ваш спекфайл.
Ви можете знайти кілька прикладів спекфайлов для різних пакетів тут the Build Service SVN.
Також, на сайті IBM developerWorks є пара статей про це: Part 1 і Part 2.
конфігурація
Змінні середовища збірки
Дистрибутив для якого ви хочете зібрати пакет.
Це можуть бути openSUSE RPM пакети розташовані: якщо змонтований openSUSE DVD то ця змінна повинна бути встановлена в значення <точка_монтирования_DVD>/ Suse. Якщо DVD скопійований в директорію, ця змінна повинна бути встановлена в значення <эта_директория>/ Suse.
BUILD_RPMS значення за замовчуванням - / media / dvd / suse
Ізольована chroot директорія де будуть збиратися rpm пакети.
BUILD_ROOT значення за замовчуванням - / var / tmp / build-root
Дані опції будуть передані утиліті rpmbuild (дивіться ман сторінку утиліти rpmbuild для повного списку цих опцій)
BUILD_RPM_BUILD_STAGE значення за замовчуванням - '-ba' (тобто Зібрати бінарний і пакет з вихідними текстами після виконання% prep,% build, і% install стадій).
Тут представлено кілька реальних прикладів різних типів і особливостей пакетів.
пакети KDE
пакети Gnome
Керівництво по створенню GNOME-пакетів було перенесено сюди.
Perl пакети
Пакети Perl прості і схожі, так як багато було представлено для архіву CPAN.