Koji — это программный продукт, позволяющий автоматически и единообразно собирать rpm-пакеты для проекта Fedora. Koji использует утилиту mock, с помощью которой выполняет сборку каждого пакета в отдельном chroot–окружении.
Перед тем как приступить к работе с Koji, рекомендуется определиться с терминологией, чтобы в дальнейшем не путать сущности. Для поддержания единообразия предлагаются следующие определения:
- Пакет (package) — это имя источника rpm, относится ко всему пакету, а не к отдельным сборкам или подпакетам. Например: kernel, glibc и другие.
- Сборка (build) — это определенная сборка пакета, относится ко всем арчам (arches) и подпакетам. Например, kernel–2.6.9–34.EL, glibc–2.3.4–2.19.
- rpm — это определенный арч и подпакет сборки. Например: kernel–2.6.9–34.EL.x86_64, kernel–devel–2.6.9–34.EL.s390, glibc–2.3.4–2.19.i686, glibc–common–2.3.4–2.19.ia64
Koji состоит из нескольких компонентов:
- Koji–Hub — это центр всех Koji операций. Это XML–RPC сервер, который работает в Апаче под mod_wsgi. Koji–Hub находится в пассивном состоянии, получая вызовы XML–RPC и полагаясь только на сборку демонов и другие компоненты для инициации общения. Вообще, Koji–Hub — это единственный компонент, у которого есть прямой доступ к базе данных, и он относится к одному из двух компонентов, у которых есть право записи в файловую систему.
- Kojid — это сборка демона, которая запускается на каждой машине сборки. Основная задача — это опрос входящих запросов сборки и их соответствующая обработка. Kojid работает только с Koji–Hub. У Kojid есть и другие задачи, среди которых, например, создание Kojid свежего buildroot для каждой сборки. Kojid использует mock для сборок. Он написан на Питоне и общается с Koji–Hub через XML–RPC.
- Koji–Web — это набор скриптов, которые запускаются в mod_python и используют шаблонизатор Cheetah для обеспечения веб–интерфейса к Koji. Koji–Web работает как клиент к Koji–Hub, обеспечивая визуальный интерфейс для выполнения ограниченного набора административных действий. Koji–Web показывает большое количество информации и предоставляет средства для конкретных операций, например, операции отмены сборки.
- Koji–client — это написанный на Питоне CLI, который обеспечивает разнообразные ловушки (hook) в Koji. Это позволяет пользователю запрашивать большое количество данных и также выполнять действия, например, добавлять новых участников и инициировать запросы на сборки.
- Kojira — это демон, который поддерживает обновленными репозиторные данные из корня сборки (build root repodata). Он отвечает за удаление лишних корней сборок и очистки после того, как запрос сборки был завершен.
Важные нюансы организации пакетов и использования тегов:
- Koji использует теги, которые отслеживаются в базе данных, но не на диске;
- Koji использует теги, которые поддерживают несколько наследований;
- у каждого тега есть свой список валидных пакетов (наследуемых);
- владение пакетом может быть установлено пре-тегом (наследуемое);
- наследование тегов возможно лучше конфигурировать;
- когда делается сборка, определяется цель, а не тег;
- цель сборки определяет, где следует собрать пакет и какие теги ему присвоить; из этого следует, что имена целей остаются постоянными, тогда как теги меняются в зависимости от релиза.
Скачать исходный код проекта, баг–репорты и присоединиться к электронной рассылке проекта можно здесь (доступно только на английском языке).
4 комментария :
Нужен ли вам, коллеги, пользователь, который даже с подробным объяснением ни слова не понимает...
нужен, конечно. Ведь вы уже знаете благодаря статьям, что есть в этом мире какой-то Koji, Fedora и открытое сообщество, и пусть пока не очень-то понятно что это сообщество открывает и зачем вообще эти открыватели миру и лично вам нужны, когда позже в профессиональной жизни столкнетесь с необходимостью решать технические задачи, описанные в статье (ну или, если вы не технарь, в продуктах, что вы используете или собираетесь использовать вас будут уговаривать перейти на открытый код), вы вспомните, что где-то вы про это уже слышали и вам будет проще и легче сориентироваться в выборе правильного решения. Удачи! И спасибо, что читаете.
После того, как я получила от специалиста ответ в двух словах, Fedora - операционная система. Стало понятнее. В работе я использую несколько весьма специализированных программ, на данный момент такие программы написаны только под Windows. Без аналогичных программ любая операционная система становится балластом.
Fedora - операционная система. На данный момент я использую в работе несколько программ, написанных только под Windows. Работаю и с другими системами, но возможности работы значительно ограничены. Все сильно зависит от того, зачем человек вообще использует компьютер. Даже для мобильных устройств не хватает свободы в работе.
Отправить комментарий