8

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

例如:

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

或者

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

或者

~>rpm -i -somearg sample.rpm

-萨克蒂

4

2 回答 2

6

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__
于 2012-06-26T21:38:24.150 回答
1

看起来您正在尝试创建一个可重定位的 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.

于 2012-06-26T21:13:39.337 回答