У меня есть исходный код в source.tar, который находится в myrpm-1.0.e17.centos.src.rpm
. Когда я устанавливаю rpm на моей машине.
rpm -ivh myrpm-1.0.e17.centos.src.rpm
Я получаю файл SOURCE и SPECS в корневом каталоге, который я хочу. Теперь я хочу, чтобы RPM попал в папку SOURCE, распакуйте tar файл (source.tar) и переместите его в другое место на моей машине. Я попытался помещать это в %install
и %post
. Кажется, что они не работают, я даже не могу сделать каталог в разделе установки.
%install
echo "INSTALLING"
mkdir temp/myfile
tar -xvf source.tar
При установке нет сообщения, не создается файл temp, и tar не распаковывается. (То же самое, если помещено в %post
).
Нет, обработка содержимого RPM источника жестко запрограммирована. %pre
, %post
, %install
и т.д. используются только при создании двоичного пакета.
В общем, вы все равно не должны так поступать. Если вам нужно распаковать исходный файл или применить исправления, просто сделайте это в разделе %pre
, который выполняется как часть процесса сборки двоичного пакета до начала фактической сборки. Это гарантирует, что сборка хотя бы несколько повторяема.
Возможно, мы сможем помочь вам, если вы упомянули, в чем проблема, которую вы пытаетесь решить, сделав это...
Проясните что-то здесь. "S" в SRPM ссылается на то, что SRPM является источником, из которого встроен установленный пакет RPM, и все. Это не означает, что программы из некомпилированных пакетов устанавливаются из SRPM или что RPM содержат только двоичные файлы. Например:
Когда исходный код для приложения недоступен, иногда дистрибутивы будут включать двоичные исполняемые файлы в их SRPMS или загружать их в разделе %build
.
Сценарии Python, Bash и PHP часто включаются как-в результирующий RPM. В этих случаях нет ничего необычного для того, чтобы %build
был полностью пуст, а для %install
просто скопировать файлы в нужное место под $RPM_BUILD_ROOT
. Если результирующий пакет не имеет файлов, зависящих от платформы, то он обычно создается как .noarch
RPM, но он все еще считается двоичным RPM, и это не SRPM.
Пожалуйста, пожалуйста, не злоупотребляйте SRPM для вещей, для которых они не предназначены.
rpmbuild
.src.rpm, чтобы получить двоичный файл .rpm, который вы затем сможете установить ...