TODO

Материал из Mageia Russian Community Wiki
Перейти к: навигация, поиск

В планах сделать некое подобие сборочной пакетов rpm для дистрибутива линукс Mageia.

Структура работы (предположительная)

  1. Имеется сервер на Mageia на котором будет происходить сама сборка пакетов.
  1. Для сборки пакетов будет использоваться чистое окружение контейнера Mageia по технологии Docker. Т.е. имеется готовый образ системы (контейнер) к которому нужно будет подключиться с нужными параметрами. В контейнере уже имеется скрипт от Олега для сборки пакетов.

Предположительно мы должны выполнить на сервере

 docker run --rm -it -v /root/build:/share:rw mageia.pbs        \
         /root/mageia-chroot.rpmbuild                           \
         -t /share/Mageia4_i586.tar.gz                          \
         -o /share/RPM                                          \
         /share/RPM/SRPMS/webcore-fonts-3.0-1.mga5.mrc.src.rpm

Этой командой мы подключаемся к образу для сборки с именем mageia.pbs, запускаем внутри него скрипт для сборки /root/mageia-chroot.rpmbuild. Указываем что сборка пакета будет делаться для архитектуры i586. Сам файл (src пакет с нужным файлом спецификации для сборки), на основе которого нужно собрать лежит по пути /share/RPM/SRPMS/ и если сборка успешна, тогда его положить в /share/RPM внутри контейнера. Хочу заметить что папка /share в контейнере, это по сути проброшенная папка с хостовой /root/build

Для начальной сборки это достаточно. Будем отталкиваться от этого. Главное понятно, что нужно сделать, что бы собрать пакет. Как я понимаю нужно иметь возможность играться параметрами.

Веб морда

  1. Для начала нужно поле загрузки файла для сборки. Файл должен (пока так, далее продумаем структуру дерева папок) положиться (залиться) в папку на сервере /root/pbs/RPM/SRPMS/
  2. Когда файл загрузится, это должно отобразиться в БД. Должны добавиться записи в таблицу. Имя пакета, описание пакета, архитектура (x86_64, i586), пользователь и статус сборки. (0 - начать сборку, 1 - удачная сбока, 2 - не удачная сборка) Как отследить это внутри контейнера пока не знаю.
  3. В системе должен работать демон, который отследит статус в таблице. Увидит что нужно собирать пакет и сформирует на основе данных выбранных на веб морде файл bash скрипта с нужными параметрами для docker (пример я выше указал) и стартанет его.

Что должно быть первоначально на веб морде.

  1. Поле для загрузки файла
  2. Чекбоксы для выбора архитектуры
  3. Поле для описания пакета
  4. Кнопка начала сборки сборки
  5. Внизу страницы должна быть таблица с историей сборки. Т.е. все поля должны быть выведены и со статусом сборки.