| 1 | = Сборка бинарных пакетов для Fedora/RHEL/CentOS = |
| 2 | |
| 3 | == Соглашения и обозначения == |
| 4 | |
| 5 | Для исключения неоднозначных толкований, необходимо определиться с используемыми далее по тексту терминами и обозначениями: |
| 6 | * ${SRC_DIR} - каталог, в котором находится дерево исходных текстов. |
| 7 | * ${RPMBUILD_DIR} - каталог, используемый утилитой rpmbuild для сборки пакетов. Обычно, это каталог {{{~/rpmbuild}}}, но может быть и {{{/usr/src/rpmbuild}}}. также Вы можете переопределить этот каталог в любое удобное для Вас место. См. [https://fedoraproject.org/wiki/PackagingGuidelines руководство по сборке RPM-пакетов] для более полной информации |
| 8 | |
| 9 | == подготовка к сборке == |
| 10 | |
| 11 | Вам необходимо иметь копию нашего репозитория. Для этого ознакомьтесь со страницей "[wiki:ru/doc/getSources Получение исходных текстов]". |
| 12 | |
| 13 | В дереве исходных текстов выполните команды: |
| 14 | |
| 15 | {{{ |
| 16 | cd ${SRC_DIR} |
| 17 | ./autogen.sh |
| 18 | ./configure |
| 19 | make dist |
| 20 | }}} |
| 21 | |
| 22 | После завершения работы этих команд в дереве исходных текстов появится архив вида {{{mc-<версия>.tar.gz}}} |
| 23 | |
| 24 | == Использование утилиты rpmbuild == |
| 25 | |
| 26 | Вы можете собрать бинарный rpm-пакет при помощи утилиты rpmbuild. При этом в Вашей ОС должны быть установлены все [wiki:ru/doc/buildAndInstall/req необходимые для сборки пакеты]. |
| 27 | |
| 28 | 1. Скопируйте файл ${SRC_DIR}/contrib/dist/redhat/mc.spec в ${RPMBUILD_DIR}/SPECS |
| 29 | 1. Скопируйте файл ${SRC_DIR}/mc-<версия>.tar.gz в ${RPMBUILD_DIR}/SOURCES |
| 30 | 1. Выполните сборку бинарного пакета. |
| 31 | 1. Выполните сборку пакета исходных текстов. |
| 32 | |
| 33 | В виде shell-команд это выглядит так: |
| 34 | {{{ |
| 35 | cp ${SRC_DIR}/contrib/dist/redhat/mc.spec ${RPMBUILD_DIR}/SPECS |
| 36 | cp ${SRC_DIR}/mc-*.tar.gz ${RPMBUILD_DIR}/SOURCES |
| 37 | rpmbuild -bb ${RPMBUILD_DIR}/SPECS/mc.spec |
| 38 | rpmbuild -bs ${RPMBUILD_DIR}/SPECS/mc.spec |
| 39 | }}} |
| 40 | сборка бинарного пакета и пакета исходных текстов может быть выполнена одной командой: |
| 41 | {{{ |
| 42 | rpmbuild -ba ${RPMBUILD_DIR}/SPECS/mc.spec |
| 43 | }}} |
| 44 | Для получения более подробной информации обратитесь к {{{man rpmbuild}}}. |
| 45 | |
| 46 | == Использование утилиты mock == |
| 47 | |
| 48 | При использовании утилиты [https://fedoraproject.org/wiki/Projects/Mock mock] нет необходимости держать в ОС установленные пакеты, необходимые для сборки нашего проекта. |
| 49 | |
| 50 | 1. Скопируйте файл ${SRC_DIR}/contrib/dist/redhat/mc.spec в ${RPMBUILD_DIR}/SPECS |
| 51 | 1. Скопируйте файл ${SRC_DIR}/mc-<версия>.tar.gz в ${RPMBUILD_DIR}/SOURCES |
| 52 | 1. Выполните сборку пакета исходных текстов. |
| 53 | 1. Запустите утилиту mock с указанием необходимой ОС для сборки |
| 54 | |
| 55 | В виде shell-команд это выглядит так: |
| 56 | {{{ |
| 57 | cp ${SRC_DIR}/contrib/dist/redhat/mc.spec ${RPMBUILD_DIR}/SPECS |
| 58 | cp ${SRC_DIR}/mc-*.tar.gz ${RPMBUILD_DIR}/SOURCES |
| 59 | rpmbuild --nodeps -bs ${RPMBUILD_DIR}/SPECS/mc.spec |
| 60 | mock ${RPMBUILD_DIR}/SRPMS/mc-*.src.rpm -r fedora-11-i386 |
| 61 | }}} |
| 62 | Для получения более подробной информации обратитесь к {{{man mock}}}. |
| 63 | |
| 64 | == Использование build-ферм koji == |
| 65 | |
| 66 | TODO: красиво расписать. Hubbitus: help, please :) |
| 67 | |