Вся информация, которую я могу найти о создании 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
.