Version 1 (modified by slavazanko, 15 years ago) (diff) |
---|
Сборка бинарных пакетов для Fedora/RHEL/CentOS
Соглашения и обозначения
Для исключения неоднозначных толкований, необходимо определиться с используемыми далее по тексту терминами и обозначениями:
- ${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 :)