Сборка бинарных пакетов для Fedora/RHEL/CentOS
ВНИМАНИЕ: RHEL4 с набором пакетов из официальных репозиториев официально не поддерживается, поскольку там используется устаревшая версия glib (<2.6) отсутствуют slang2 и ncursesw.
Соглашения и обозначения
Для исключения неоднозначных толкований необходимо определиться с используемыми далее по тексту терминами и обозначениями:
- ${SRC_DIR} - каталог, в котором находится дерево исходных текстов;
- ${RPMBUILD_DIR} - каталог, используемый утилитой rpmbuild для сборки пакетов. Обычно это каталог ~/rpmbuild, но может быть и /usr/src/rpmbuild. Также вы можете переопределить этот каталог в любое удобное для вас место. См. руководство по сборке RPM-пакетов для более полной информации
Подготовка к сборке
Вам необходимо иметь копию нашего репозитория. В дереве исходных текстов выполните команды:
cd ${SRC_DIR} ./autogen.sh ./configure make dist
После завершения работы этих команд в дереве исходных текстов появится архив вида mc-<версия>.tar.gz
Использование утилиты rpmbuild
Вы можете собрать бинарный rpm-пакет при помощи утилиты rpmbuild. При этом в вашей ОС должны быть установлены все необходимые для сборки пакеты?.
- Скопируйте файл ${SRC_DIR}/contrib/dist/redhat/mc.spec в ${RPMBUILD_DIR}/SPECS.
- Скопируйте файл ${SRC_DIR}/mc-<версия>.tar.gz в ${RPMBUILD_DIR}/SOURCES.
- Выполните сборку бинарного пакета.
- Выполните сборку пакета исходных текстов.
В виде shell-команд это выглядит так:
cp ${SRC_DIR}/contrib/dist/redhat/mc.spec ${RPMBUILD_DIR}/SPECS cp ${SRC_DIR}/mc-*.tar.gz ${RPMBUILD_DIR}/SOURCES rpmbuild -bb ${RPMBUILD_DIR}/SPECS/mc.spec rpmbuild -bs ${RPMBUILD_DIR}/SPECS/mc.spec
Сборка бинарного пакета и пакета исходных текстов может быть выполнена одной командой:
rpmbuild -ba ${RPMBUILD_DIR}/SPECS/mc.spec
Для получения более подробной информации обратитесь к man rpmbuild.
Использование утилиты mock
При использовании утилиты mock нет необходимости держать в ОС установленные пакеты, необходимые для сборки нашего проекта.
- Скопируйте файл ${SRC_DIR}/contrib/dist/redhat/mc.spec в ${RPMBUILD_DIR}/SPECS.
- Скопируйте файл ${SRC_DIR}/mc-<версия>.tar.gz в ${RPMBUILD_DIR}/SOURCES.
- Выполните сборку пакета исходных текстов.
- Запустите утилиту mock с указанием необходимой ОС для сборки.
В виде shell-команд это выглядит так:
cp ${SRC_DIR}/contrib/dist/redhat/mc.spec ${RPMBUILD_DIR}/SPECS cp ${SRC_DIR}/mc-*.tar.gz ${RPMBUILD_DIR}/SOURCES rpmbuild --nodeps -bs ${RPMBUILD_DIR}/SPECS/mc.spec mock ${RPMBUILD_DIR}/SRPMS/mc-*.src.rpm -r fedora-11-i386
Для получения более подробной информации обратитесь к man mock.
Использование build-ферм koji
TODO: красиво расписать. Hubbitus: help, please :)