Дана сторінка знаходиться в розробці.
Ця сторінка ще не закінчена. Інформація, представлена тут, може виявитися неповною або неправильною.
Введення [ред]
Для складання пакетів маються на увазі такі початкові умови:
- У вас встановлений дистрибутив ALT Linux;
- Є бажання зібрати пакет правильно, а не для одиничного випадку;
- Ви носите горде звання «мейнтейнера ALT Linux Team», що має на увазі наявність електронних ключів і доступу до інфраструктури git.alt
Третій пункт необов'язковий для новачків, які просто хочуть зібрати пакет правильно для себе.
В ALT Linux використовується формат пакетів RPM. який являє собою архів, що містить архів з встановленими або збираються файлами і заголовок з метаінформацією (наприклад, назва, версія, група і т.п.). Розрізняють два види пакетів RPM:
- Пакет з вихідним кодом (має розширення .src.rpm). Такий пакет містить архів (один або кілька) з вихідним кодом, файл Spec (далі - просто спік) і, можливо, різноманітні патчі і доповнення. Пакет src.rpm можна використовувати тільки для зборки двійкових пакунків, але не установки. Збірка здійснюється командою:
- Зібраний двійковий пакет (має розширення виду <архитектура>.rpm). Як архітектури може бути i586, x86_64 або noarch. Такі пакети можна встановлювати командою
Детальну інформацію по структурі RPM і складанні за допомогою команди rpm можна знайти в Maximum RPM.
Однак для складання через rpmbuild виникають очевидні складнощі:
- Необхідно вручну задовольнити складальні залежності для збірки (поставити компілятор, що включаються файли, бібліотеки). При великій кількості зібраних пакетів система засмічується.
- Для складання пакета потрібно сформувати .src.rpm з файлів, розкиданих по різних каталогах (за замовчуванням, це підкаталоги SOURCE, SPECS і підкаталоги для збірки в
Щоб уникнути цих складнощів, в ALT Linux Team було придумано дві технології:
- Hasher для збірки в ізольованому оточенні. У chroot ставиться базовий комплект пакетів і пакети, необхідні для збірки (поле BuildRequires в спікся). Якщо якийсь пакет для збірки не вказано в спікся, то з'явиться помилка. Так забезпечується чистота збірки. Зворотною стороною є необхідність мати доступ до сховища, так як пакети ставляться при кожній збірці в Hasher.
- Gear для складання пакетів з репозиторію Git. В цьому випадку всі файли лежать в розпакованому вигляді і в src.rpm упаковуються за правилами, певним в .gear / rules. Це дозволяє працювати відразу з вмістом, швидко робити патчі, вести історію змін і обмінюватися змінами при колективній розробці.
Установка пакетів для збирання [ред]
Для збірки нам будуть потрібні наступні компоненти:
Для цього налаштуйте репозиторії і встановіть пакети build-environment і gear:
Будуть встановлені з залежностями всі необхідні пакети для опакечіванія і збірки
Налаштування середовища [ред]
Оточення Git [ред]
Змініть в залежності від ваших параметрів. Третя команда задає ідентифікатор вашого GPG-ключа для підпису:
Оточення RPM [ред]
/.rpmmacros такого змісту (звичайно, замінивши ключ і ім'я мейнтейнера на свої):
У% _gpg_name вказується відбиток ключа (а не короткий ідентифікатор, як для Git). Отримати його можна командою:
Оточення Hasher [ред]
Для початку створіть під правами root двох службових користувачів для сборочніци (середовища збірки Hasher):
Замість «cas» потрібно вказати існуючого користувача на машині, де буде розгорнута складальна середу.
Далі для найпростішої конфігурації Hasher потрібно створити каталог
/.hasher з наступними файлами:
Відповідно, USER повинен бути такий же, як заведений в hasher-useradd. target - вказувати на архітектуру зібраних пакетів.
Підготовка сховища Git [ред]
Репозиторій Git створити дуже просто. Для цього створимо каталог (імена пакетів краще вказувати в нижньому регістрі, тому наш пакет для проекту буде називатися kchildlock), перейдемо в нього і запустимо git init.