安装时是否可以将用户定义的参数传递给 RPM?
例如:
~>rpm -i sample.rpm -license_path=/path/
或者
~>rpm -i -license_path=/path/ sample.rpm
或者
~>rpm -i -somearg sample.rpm
-萨克蒂
RPM 并不意味着采用用户定义的参数。
请参阅RPM - 安装时间参数
另一个类似的问题是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__
看起来您正在尝试创建一个可重定位的 RPM。
在.spec
文件的前导中,放置可以重定位的文件路径的前缀。例如,如果您的文件的完整路径是
/base/path/to/my/file
然后/base
可以在 RPM 安装期间更改,但/path/to/my/file
将保持不变。
这是您放入.spec
文件的内容:
#Preamble: Summary, Name, etc.
Prefix: /base
确保在列出文件的%install
和%files
部分中的所有可重定位文件时提及此前缀.spec
。在某些情况下,可重定位的 RPM 可能不起作用,因此请检查这些要考虑的事项。
%files
%{prefix}/path/to/my/file
现在,当您安装 RPM 时,您可以指定不同的前缀。
rpm -i sample.rpm --prefix /tmp
这会将文件安装在/tmp/path/to/my/file
.