OBS - частная практика. Заметки на полях
Denis Pynkin, Minsk, Belarus
LVEE 2012
Open Build Service (OBS) — is an open and complete distribution development platform. It provides the infrastructure to easily create and release open source software for openSUSE and other Linux distributions on different hardware architectures. This article describe some approaches for usage of private OBS instance in development process.
Некоторые проблемы коммерческой разработки Подавляющее большинство современных дистрибутивов на базе ОС Linux использует бинарные пакеты для распространения программного обеспечения. Таким образом гарантируется, что все пользователи получают программы скомпилированные «правильной» версией компилятора, в «правильном» окружении и с корректно установленными зависимостями на другие программы и библиотеки, необходимые для функционирования. В общем случае это означает, что между исходным кодом и конечным пакетом находится целый пласт процессов и правил, описывающих как правильно «приготовить» программное обеспечение из исходного кода, причем эти процессы и правила уникальны для различных семейств дистрибутивов. Такая сегментация часто приводит к тому, что коммерческие разработки все теснее интегрируются с каким-либо единожды и давно выбранным дистрибутивом. Процесс разработки коммерческого продукта предназначенного для bare-metal установки во многом схож с созданием форка выбранного дистрибутива и последующей его поддержкой, так что переход на другую, более подходящую в современных реалиях базу, потребует от производителя больших затрат времени, сил и средств, фактически останавливая разработку своего продукта на время переезда. Еще одна проблема, с которой сталкиваются разработчики — это смешивание и наслоение правил создания программного обеспечения, сборочной среды и подготовки рабочего образа операционной системы. Даже изначально отлично спроектированный и реализованный процесс, с годами начинает обрастать дополнительными «фичами» и «подпорками», которые сплетают красивую и стройную систему в единый клубок, распутать который становится проблематично. Сборочные системы призваны упростить и минимизировать работу человека по созданию и сопровождению программного обеспечения, входящего в дистрибутив. Кроме того они стараются отслеживать соблюдение правил создания программного обеспечения и результирующего установочного образа. Одна из лучших по совокупности параметров и возможностей система автоматической сборки общего назначения — это Open Build Service 1, представляющая собой универсальную модульную и расширяемую базу для создания проектов любого уровня. Проекты в OBS Проект в OBS — это это организационная единица, представляющая собой единую площадку с общими правилами сборки для всех пакетов. Проект включает в себя:- конфигурацию проекта, включая макросы и определения используемые в
сборочной среде; - сборочные цели — дистрибутивы, на базе которых OBS будет пытаться
собрать пакеты, входящие в проект. - пакеты, состоящие из:
- исходного кода;
- правил сборки программного обеспечения (spec, dsc) или дискового
образа (kiwi).
- с подключением к внешним серверам;
- изолированный — полностью автономный сервер без связи с внешним
миром.
Bibliography
1 Пынькин Д.А. Обзор Open Build System. http://winter.lvee.org/ru/articles/269
2 Build Service private installation. http://en.opensuse.org/openSUSE:Build Service private installation
3 Build Service private instance boot strapping. http://en.opensuse.org/openSUSE:Build Service private instance boot strapping
Текст тезисов доступен под лицензией Creative Commons Attribution-ShareAlike 3.0.