The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Проект AlmaLinux представил новую сборочную систему ALBS

21.06.2022 16:48

Разработчики дистрибутива 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, поддержка пространств имён для предоставления проектам и организациям инфраструктуры сборки своих пакетов, подготовка средств для автоматизации сборки и публикации образов виртуальных машин и контейнеров.

  1. Главная ссылка к новости (https://almalinux.org/blog/int...)
  2. OpenNews: Доступен дистрибутив AlmaLinux 9.0, основанный на ветке RHEL 9
  3. OpenNews: Новая версия сборочной среды ROSA ABF 2.0
  4. OpenNews: Google развивает модульную сборочную систему Soong для Android
  5. OpenNews: Выпуск системы сборки пакетов Open Build Service 2.10
  6. OpenNews: Компания CloudLinux анонсировала разработку альтернативы CentOS 8
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57384-almalinux
Ключевые слова: almalinux, build
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (33) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Иван Ворстаненко (?), 17:03, 21/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Чем не угодил Open Build Service, имеющий возможность собирать для львиной доли дистров пакеты - не понятно.
    А хотя, если "всё своё хотим" - тогда оправдано. Ну, тогда сделайте только для своего продукта - зачем копировать и так хорошо работающие рещшения?
     
     
  • 2.2, лютый жабби___ (?), 17:16, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >Чем не угодил

    Лень узнавать почему альмы так быстро рожают релизы, особенно 9ку. Но возможно их цапцарапалка самая быстрая )

     
  • 2.3, Онаним (?), 17:32, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там не сборочка одного проектика.
    Там многоитерационная сборка, которая посерёдке легко может фейлиться до следующего цикла.
     
     
  • 3.4, Онаним (?), 17:33, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    При этом собранные пакеты подставляются в саму сборочную систему для следующего цикла сборки.
     
     
  • 4.5, Аноним (5), 17:48, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что-то это как-то фу. Когда пакеты циклически зависят друг от друга, в итоге из-за одного битого пакета окажется битым другой совершенно никак к нему не относящийся. Я думаю, многие, кто игрался с флагами на генте, через это проходили. Сборка должна быть с нуля, чистой и воспроизводимой. А то слишком часты ситуации, когда что-то внезапно фейлится, и пойди нади там, из-за чего.
     
     
  • 5.6, Аноним (6), 18:20, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > из-за одного битого пакета окажется битым другой совершенно никак к нему не относящийся

    Это как?

     
     
  • 6.10, Аноним (5), 18:27, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> из-за одного битого пакета окажется битым другой совершенно никак к нему не относящийся
    > Это как?

    Бывает такое дело, в итоге часть пакетов работают с либой, а часть выдаёт самые разные ошибки, никогда не догадаешься. При этом, это какая-то зависимость зависимости использованного в коде проекта. Ещё очень часто у тебя что-то скомпилировалось нормально, ты пробуешь пересобрать всё дерево зависимостей этого пакета, и всё в итоге рассыпается, а этот пакет вообще больше не компилируется. Надо пересобрать вообще весь мир с отключением оптимизаций, и тогда, может быть, соберётся, или отвалится ещё что-нибудь и ты найдёшь, в чём причина. Хотя всё работало и никаких проблем не было. Поэтому полная пересборка всего при обновлении имеет некоторый смысл, чтобы такие вещи сразу обнаруживались.

     
     
  • 7.36, Анончик (?), 19:56, 24/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    За 3 года что Гента была локалхостом не наблюдал того о чем вы говорите
     
     
  • 8.37, Аноним (5), 20:09, 24/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это надо уметь Для быстрого эффекта могу порекомендовать собрать мир с lto no-... текст свёрнут, показать
     
     
  • 9.38, n00by (ok), 06:29, 25/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Собираю с lto и с -fno-fat-lto-objects со времён, когда требовалась создавать ... текст свёрнут, показать
     
     
  • 10.39, Аноним (5), 20:14, 25/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Одного LTO мало, но и с ним каждое обновление компилятора новые приключения Я о... текст свёрнут, показать
     
     
  • 11.40, n00by (ok), 08:51, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что помимо LTO надо graphite включено Может быть дело в том, что начал собират... текст свёрнут, показать
     
     
  • 12.41, Аноним (5), 23:46, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь надо собрать мир с графитом и lto, ну там -floop-block -fgraphite-identit... текст свёрнут, показать
     
     
  • 13.42, Аноним (5), 23:49, 26/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Что с dev-libs ncnn я так и не понял, собирается только с arch core2, какие-то к... текст свёрнут, показать
     
  • 13.43, n00by (ok), 11:26, 27/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А это вообще отдельная тема Очередная победа идеологии над здравым смыслом Зат... текст свёрнут, показать
     
  • 5.7, Онаним (?), 18:23, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Воспроизводимой она может стать только после того раза, как все пакеты собраны циклически первый раз.
    Потому что на минуточку, у конкретно этой сборки НЕТ базовой системы, она бутстрапится сама в себя.
     
     
  • 6.8, Онаним (?), 18:25, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    (но по факту после 1 итерации она ещё не воспроизводима, и воспроизводимость появляется после нескольких итераций)
     
  • 6.11, пох. (?), 18:34, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Собственно, если этого не делать - пупсики не смогут пересобрать у себя пакетик, поправив один байт.

    Потому что у них альмалинукс, а не сборочная ферма специально под задачу собирания одного пакетика.

     
     
  • 7.13, Онаним (?), 18:42, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, не. После того, как воспроизводимость достигнута, сборка ведёт себя как нормальная сборочная система, позволяя собирать и по 1 пакету. Проблема в том, что редхат при больших апдейтах так же циклически заново перебирает фигову тучу таковых.
     
     
  • 8.14, Онаним (?), 18:43, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    То есть это не совсем такая вот разовая операция Собрали циклически 8 0 - дальш... текст свёрнут, показать
     
  • 8.16, пох. (?), 18:53, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, говорю же - оно иначе не пересоберется на обычной системе, а традиционные... текст свёрнут, показать
     
  • 5.9, Онаним (?), 18:26, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если чуть попроще - сборка и есть сборочная система :D Поэтому "классика" тут не заходит однозначно.
     
  • 2.15, r0g3r (ok), 18:49, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тем, что этот монстр абсолютно unmantainable. Найти в чём проблема там не представляется возможным, если что-то там случится. Там практически отсутствуют дебаг-логи, куча компонентов там — портянки на баше вызывающие перл, а затем снова ныряющие в портянки на баше. А если дебаг логи там и есть, то их информативность оставляет желать сильно лучшего. Починить в случае сбоя это всё очень сложно. Плюс, компоненты имеют привычку вставать там колом на ровном месте. И ты понимаешь, что что-то встало только тогда, у тебя, например, перестаёт сборка публиковаться, например. Или воркеры почему-то молчат. Но в логах при этом полнейшая тишина. Догадаться что отвалилось — только наугад.
    И всё это очень плохочитаемое внутри. И что самое поганое, в реальности он нормально работает только на openSUSE. Поставить его на другой дистрибутив ОЧЕНЬ нетривиальная задача. Плюс, если нужно сборочный контейнер кастомизировать (например, добавить для сборки пакетов какие-то опции, то ты охренеешь искать, где это на самом деле вызывается).

    Я перечислил далеко не полный список проблем с этой штукой. В общем, любви к этой штуковине не понимаю абсолютно.

     
  • 2.26, ДаНуНафиг (?), 19:45, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это из собственный велосипед, который они катят с 2012 года. Понятно, что им проще сидеть на нем и дальше.
     

  • 1.12, Бывалый смузихлёб (?), 18:40, 21/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > предоставляются средства для автоматизации замены брендов

    Отличная сборочная система для создания исключительно своих, оригинальных пакетов

     
  • 1.18, Анонимленьлогиниться (?), 19:12, 21/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так а чем koji не устроил, зачем нужно было переизобретать?
     
     
  • 2.25, Sergey (??), 19:39, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вот я тоже не понял. Вроде всегдв им собирали.
     

  • 1.27, Annno (?), 20:15, 21/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    всем страдать, что тут сказать

    его (дистр) где то кроме одного из "местных" клауд провайдеров используют?

     
     
  • 2.30, Аноним (30), 07:14, 22/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    На его основе собирается Docker-контейнер manylinux для сборки нативных python wheels: https://github.com/pypa/manylinux
     

  • 1.32, n00by (ok), 08:39, 22/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Свои инструменты создают не ради самих инструментов, а что бы вырастить команду специалистов, способных адаптировать инструменты под задачи и решать возникающие проблемы. В том числе и в будущем. Кто это не понимает, тот аутсорсит "полностью автономную" Automatic Build Farm, кидает субподрядчиков, а потом джва года смотрит на ошибку 500 сервера и ничего не может с ней поделать.
     
  • 1.33, Аноним (33), 11:40, 22/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ноль документации. Для кого представили не понятно.
     
  • 1.34, Ztp (?), 16:21, 22/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это та самая система что не может корректно запаковать rpm ?

    https://almalinux.discourse.group/t/alma-linux-9-error-install-chkconfig/1229

     
     
  • 2.35, sagittarius (ok), 20:08, 22/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Битый диск, проблемы с памятью как вариант. Тем более человек ниже написал, что установил данный пакет без ошибок.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру