Запускается ли установка src.rpm% install?

У меня есть исходный код в source.tar, который находится в myrpm-1.0.e17.centos.src.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

При установке нет сообщения, не создается временный файл, и tar не распаковывается. (То же самое, когда помещено в %post).

1

Решение

Нет, обработка исходного содержимого 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 для вещей, для которых они не предназначены.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]