Разработчики дистрибутива AlmaLinux, развивающего похожий на CentOS
бесплатный клон Red Hat Enterprise Linux,
представили
новую сборочную систему ALBS (AlmaLinux
Build System), которая уже использована при формировании выпусков
AlmaLinux 8.6 и
9.0,
подготовленных для архитектур x86_64, Aarch64, PowerPC ppc64le и s390x.
Кроме сборки дистрибутива ALBS также используется для генерации и
публикации корректирующих обновлений (errata), и заверения пакетов
цифровой подписью. Код сборочной системы написан на языке Python и
распространяется под
лицензией GPLv3.
Представленная сборочная система основана на наработках компании
CloudLinux, развивающей собственный коммерческий дистрибутив на основе
пакетной базы RHEL. Компания CloudLinux основала проект AlmaLinux и
выступила учредителем некоммерческой организации AlmaLinux OS
Foundation, созданной для разработки на нейтральной площадке с участием
сообщества и c использованием модели управления, похожей на организацию
работы проекта Fedora. Для подтверждения приверженности изначально
заявленной полностью открытой и прозрачной для сообщества модели
разработки, код сборочной системы теперь полностью открыт, а все стадии
сборки AlmaLinux подконтрольны
сообществу.
Система ALBS ориентирована на автоматизацию сборки дистрибутива, сборки
пакетов, тестирования пакетов, формирования цифровых подписей и
публикации собранных пакетов в публичных репозиториях. Система нацелена
на обработку всех стадий формирования дистрибутива как единого целого
для исключения ошибок, вызванных человеческим фактором. Сборочная
система продолжает развитие внутренней сборочной системы CloudLinux,
применяемой с 2012 года.
Помимо пакетов в формате RPM, поддерживается формат DEB и
предоставляются средства для автоматизации замены брендов и модификации
пересобираемых пакетов. В том числе система может применяться для
создания произвольных дистрибутивов на основе Ubuntu и Debian. Для
тестирования сборок применяется система непрерывной интеграции Jenkins.
Исходный код собираемых пакетов загружается из Git-репозитория (в случае
с AlmaLinux изменения в пакетах RHEL отслеживается через git.centos.org
и переносятся в git.almalinux.org и sources.almalinux.org).
Для всех желающих открыт анонимный доступ к сборочной системе AlmaLinux,
позволяющий отслеживать все стадии сборки дистрибутива. Через
предоставленный интерфейс можно определить какие пакеты собираются в
данный момент, когда был собран интересующий пакет и при сборке каких
пакетов возникли сбои. Для анализа доступен полный сборочный лог с
детализацией на уровне отдельных пакетов. В настоящее время доступ
ограничен возможностью наблюдения за системой, но в конце июля
планируется запустить систему управления доступом на основе ролей (RBAC)
и предоставить участникам из сообщества и сопровождающим возможность
собирать в ALBS собственные пакеты.
В будущем также ожидается поддержка верификации сборок с использованием
сервиса CodeNotary, поддержка сборочного
сервиса COPR, поддержка пространств
имён для предоставления проектам и организациям инфраструктуры сборки
своих пакетов, подготовка средств для автоматизации сборки и публикации
образов виртуальных машин и контейнеров.
>>> Подробности