安装时可以将用户定义的参数传递给RPM吗?

时间:2012-06-26 10:04:06

标签: linux rpm rpmbuild

安装时可以将用户定义的参数传递给RPM。

例如:

~>rpm -i sample.rpm -license_path=/path/

~>rpm -i -license_path=/path/ sample.rpm

~>rpm -i -somearg sample.rpm

-Sakthi

2 个答案:

答案 0 :(得分:6)

RPM并不意味着采用用户定义的参数。

请参阅RPM - Install time parameters

另一个类似的问题是https://superuser.com/questions/408852/is-it-possible-to-get-users-input-during-installation-of-rpm

一种解决方法是让rpm的postinstall脚本请求来自stdin的输入,在这种情况下,您可以通过从文件或此处文档重定向stdio来传递答案。

>rpm -i sample.rpm <<__NOT_RECOMMENDED__
somearg
__NOT_RECOMMENDED__

答案 1 :(得分:1)

您似乎正在尝试创建relocatable RPM

.spec文件的前导码中,输入可以重定位的文件路径的前缀。 例如,如果文件的完整路径是

/base/path/to/my/file

然后在RPM安装期间可以更改/base,但/path/to/my/file将保持不变。

以下是您在.spec文件中添加的内容:

#Preamble: Summary, Name, etc.
Prefix: /base

确保在列出%install文件的%files.spec部分中的所有可重新定位文件时提及此前缀。在某些情况下,可重新定位的RPM可能无法正常工作,因此请查看these things to consider

%files
%{prefix}/path/to/my/file

现在,当您安装RPM时,您可以指定不同的前缀。

rpm -i sample.rpm  --prefix /tmp

这将在/tmp/path/to/my/file

中安装该文件