05 марта 2026 № 1 (2026)

ROSARIUM

газета советского программиста

Что такое ABF

Архитектура платформы, преимущества облачной сборки.

На этой странице

ABF (Automated Build Farm) — это облачная платформа для автоматизированной сборки и публикации пакетов ROSA Linux.

Зачем нужна сборочная ферма

Локальная сборка удобна для разработки, но имеет ограничения:

  • Одна архитектура — вы можете собрать только для своей системы
  • Загрязнённое окружение — установленные пакеты влияют на сборку
  • Невоспроизводимость — «у меня работает» не гарантирует работу у других
  • Ручная публикация — нужно самому выкладывать RPM

ABF решает эти проблемы.

Возможности ABF

Мультиархитектурная сборка

Одним нажатием кнопки пакет собирается для всех доступных архитектур (зависит от платформы):

  • x86_64
  • aarch64 (ARM64)
  • i686 (если доступна для выбранной платформы)

Чистое окружение

Каждая сборка начинается с нуля:

  1. Создаётся минимальный chroot
  2. Устанавливаются только указанные BuildRequires
  3. Запускается сборка
  4. Окружение уничтожается

Это гарантирует, что если пакет собрался на ABF — он соберётся где угодно.

Автоматическая публикация

После успешной сборки пакет автоматически попадает в репозиторий:

  • Личный репозиторий — сразу
  • Community — после review

Логи и артефакты

Всё сохраняется:

  • Полные логи сборки
  • Готовые RPM и SRPM
  • История всех сборок

Архитектура ABF

┌─────────────────────────────────────────────────────────┐
│                     WEB INTERFACE                        │
│            https://abf.io / https://abf.rosa.ru         │
└─────────────────────────────────────────────────────────┘
                           │
                           ▼
┌─────────────────────────────────────────────────────────┐
│                     ABF API                              │
│              REST API для автоматизации                  │
└─────────────────────────────────────────────────────────┘
                           │
           ┌───────────────┼───────────────┐
           ▼               ▼               ▼
    ┌──────────┐    ┌──────────┐    ┌──────────┐
    │ Builder  │    │ Builder  │    │ Builder  │
    │ x86_64   │    │ i686     │    │ aarch64  │
    └──────────┘    └──────────┘    └──────────┘
           │               │               │
           └───────────────┼───────────────┘
                           ▼
┌─────────────────────────────────────────────────────────┐
│                   РЕПОЗИТОРИИ                            │
│          abf-downloads.rosalinux.ru                      │
└─────────────────────────────────────────────────────────┘

Компоненты ABF

Проекты (Projects)

Каждый пакет — это проект с git-репозиторием:

https://abf.io/import/firefox
         ↑        ↑
      группа   название проекта

Группы (Groups)

Проекты объединяются в группы:

  • import — основные пакеты дистрибутива
  • community — пакеты от сообщества
  • username_personal — личные проекты пользователя

Платформы (Platforms)

Платформа — это версия дистрибутива. В рамках курса ориентируемся на ROSA Fresh 13.1:

  • rosa13.1 — ROSA Fresh 13.1 (используется в примерах)

Точное имя платформы смотрите в ABF (в списке доступных платформ).

Репозитории платформы

Каждая платформа имеет репозитории (набор может отличаться):

  • main/release — стабильные пакеты
  • main/updates — обновления
  • main/testing — тестовые версии
  • contrib/release — пакеты сообщества

URL-структура ABF

Веб-интерфейс

https://abf.io/группа/проект
https://abf.io/import/firefox
https://abf.io/username_personal/mypackage

Git-репозитории

git@abf.io:группа/проект.git
git@abf.io:import/firefox.git

Репозитории пакетов

https://abf-downloads.rosalinux.ru/группа/repository/платформа/архитектура/тип/статус/
https://abf-downloads.rosalinux.ru/import/repository/ROSA_PLATFORM/x86_64/main/release/
# где ROSA_PLATFORM = rosa13.1 (или имя платформы из ABF)

Workflow на ABF

1. Создание проекта
   └── git-репозиторий с SPEC и исходниками

2. Запуск сборки
   └── Выбор платформы и архитектур

3. Сборка на билдерах
   ├── Создание chroot
   ├── Установка BuildRequires
   ├── rpmbuild
   └── Очистка

4. Результат
   ├── Успех → RPM в репозитории
   └── Ошибка → Анализ логов → Исправление → Повтор

Преимущества ABF для сборщика

  1. Не нужно мощное железо — сборка на сервере
  2. Все архитектуры сразу — один клик
  3. Гарантия воспроизводимости — чистое окружение
  4. Автоматизация — API для скриптов
  5. История — все сборки сохраняются
  6. Совместная работа — права доступа, группы

Сравнение с другими системами

СистемаИспользуется в
ABFROSA, OpenMandriva
KojiFedora, CentOS
OBSopenSUSE
LaunchpadUbuntu

Проверьте понимание

  1. Какие преимущества даёт сборка на ABF по сравнению с локальной?
  2. Что такое «чистое окружение» сборки?
  3. Из каких основных компонентов состоит ABF?
  4. Куда попадают пакеты после успешной сборки?
  5. Какие архитектуры поддерживает ABF?

Далее: Регистрация и настройка