Назад | Перейти на главную страницу

Как скомпилировать исходники в rpmbuild BUILDROOT?

Вся информация, которую я могу найти о создании RPM, кажется, предшествует CentOS 6, и, как полный новичок в создании пакетов, использующий CentOS 6.5, я довольно застрял.

Во всех учебных пособиях, которые я прочитал, упоминается один BUILD каталог и указать, что во время %install файлы копируются из их исходного местоположения (/usr/bin/whatever) и упакованы.

Однако в образе CentOS 6.5, на котором я строю, новый BUILDROOT появляется каталог, который я считать предназначен для того, чтобы вам не приходилось устанавливать двоичные файлы в их исходные местоположения, и, следовательно, также избегать использования sudo с участием make install.

Однако, похоже, это не обязательно. При попытке упаковать различные источники, написанные другими людьми rpmbuild завершает make install успешно, но затем умирает, когда не находит двоичные файлы под BUILDROOT, потому что они не были там установлены.

После некоторого покопания кажется, что некоторые Makefile могут принимать DESTDIR аргумент, но только если автор его поддержал, а если нет, я застрял. Я также читал, что использовать --prefix

Итак, мой вопрос:

Как я могу собрать и установить любой сторонние источники в расположение BUILDROOT? Есть ли что-то, что может сделать для меня rpmbuild, что не требует исправления чужого кода, которого я не понимаю?

Как я могу собрать и установить любой сторонние источники в расположение BUILDROOT? Может ли rpmbuild что-нибудь сделать для меня [...]?

На самом деле, нет. rpmbuild по сути является оболочкой и полагается на инструкции, предоставляемые Makefile и т. д. Ответственность за это лежит на разработчиках источника, а не на rpmbuild.