понедельник, 1 декабря 2014 г.

Mageia-chroot: набор скриптов для работы с Mageia в chroot

Долгое время собирал пакеты для Mageia в чистом chroot окружении через утилиту Aum++. Время от времени возникали мелкие проблемы, но ничего критичного не было. Но как-то начал ловить систематически ошибку "No space left on device", хотя свободного места на разделе было 90+ Гб, согласно выхлопу df -i с inode'ами проблем тоже не было. Появились подозрения. Поставил вручную Mageia в chroot, пакет собрался без ошибок. Стало ясно, видимо в каких-то ситуациях у Aum++ возникает проблема с использованием tmp.
Разбираться в чужом C++ коде совсем не хотелось, как и репортить, а потом ждать неизвестно сколько пока проблему исправят (и исправят ли вообще?). Так и появилась идея накостылить сделать свое решение для автоматизации процесса сборки rpm пакетов для Mageia в чистом chroot окружении. Ну и, как мне показалось, лучше всего для решения такой задачи использовать Bash.
За вечер были написаны первые скрипты, еще два вечера они тщательно проверялись и отлаживались, после выложил их в публичный доступ. Конечно, ошибки потом все равно нашлись (а в каком коде их нет? всегда найдутся), но и их (ошибки, обнаруженные другими пользователями) по мере я отловил и исправил. Набор скриптов разросся, получил название "Mageia-chroot scripts" и теперь может быть использован не только для сборки rpm пакетов, но для и решения ряда других задач.

На данный момент набор включает в себя пять (5) скриптов:
  • mageia-chroot.tarball - создает тарболлы (tar.gz архивы) с установленной и сконфигурированной Mageia (с минимальным набором пакетов: basesystem-minimal, urpmi и rpm-build), которые можно будет использовать при необходимости быстро развернуть рабочую и уже сконфигурированную Mageia для использования в chroot.
  • mageia-chroot.rpmbuild - собирает rpm-пакеты из src.rpm в чистом chroot-окружении, для работы требует тарболл с Mageia, сгенерированный через mageia-chroot.tarball.
  • mageia-chroot.install - устанавливает Mageia в chroot.
  • mageia-chroot.unpack - распаковывает тарболл с Mageia.
  • mageia-chroot.run - запускает Mageia в chroot или уже установленную в какой-то директории, или из тарболла.  

Справочную информацию и примеры использования можно почитать в справке скриптов (запускайте скрипт с ключом -h), в вики проекта на BitBucket, либо на форуме Mageia Russian Community.

Оставить отзывы и предложения или задать вопросы можно в комментариях к этой записи или на вышеупомянутом форуме MRC.

Скрипты распространяются на условиях лицензии GNU GPL v3 или более новой.

Комментариев нет:

Отправить комментарий