Новость из категории: Информация

openSUSE Build Service: особенности сборки RPM и Deb

Содержание:
1. Введение;
2. Начало работы;
3. Процесс сборки;
4. Зависимости от других проектов;
5. Особенности сборки RPM и Deb (Вы читаете данный раздел).
openSUSE Build Service: особенности сборки RPM и Deb

Полезной (а для кого-то - раздражительной) особенностью сборки RPM в OBS является автоматический запуск на собранных пакетах утилиты rpmlint, проверяющей соответствие пакетов общепринятым стандартам. В случае, если пакет не проходит тесты rpmlint, сборка считается завершившейся неудачно, и пакеты из ВМ не извлекаются. Вообще, следование стандартам - это хорошо, но если бороться с rpmlint нет сил, можно добавить в секцию BuildRequires spec-файла опцию '-post-build-checks'.

Аналога rpmlint для Deb-пакетов в OBS нет. Однако у сборки Deb-пакетов в системе - свои особенности.

Отличием процесса сборки Deb от RPM является то, что имя архива с исходным кодом не прописывается в инструкциях для скриптов dpkg; вместо этого, инструмент просто ищет файл с именем, имеющим вид [имя_проекта]-[версия]-src.tar.gz (tgz, tar.bz2, ...). Впрочем, если ваш архив называется по-другому, беспокоится не стоит - OBS самостоятельно переименует архив при помещении его в виртуальную машину. Правда, такой интеллект предполагает, что среди файлов проекта есть только один архив. В противном случае система не сможет понять, какой из архивов надо переименовать.

Наконец, при сборке пакета в некоторых основанных на Debian системах можно получить такую ошибку:
dpkg-source: error: unrecognized file for a v1.0 source package

Это означает, что инструментарию сборки не понравился формат вашего архива, а точнее - метод сжатия. Самый надежный способ избежать подобных ошибок - использование архивов tar, сжатых gzip (tar.gz).

Что еще?

openSUSE Build Service: особенности сборки RPM и Deb

Принцип работы OBS достаточно прост. Веб-интерфейс системы тоже прост и интуитивно понятен, хотя и имеет тенденцию время от времени изменяться (а документация, как водится, за изменениями не всегда поспевает).

Но веб-интерфейс не всегда удобен - все-таки он предполагает участие человека, а в производственном процессе удобнее было бы автоматизировать «общение» с системой, написав скрипты для загрузки в нее исходного кода и извлечения результатов сборки. Разработчики OBS такую возможность предусмотрели - пользователям предоставляется REST API (так что можно общаться с OBS посредством, например, curl) и утилиты командной строки.

И стоит напомнить, что OBS является свободным ПО (распространяется под GNU GPL), так что каждый желающий может развернуть собственную копию системы, настроив ее по своему вкусу и потребностям.

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх