使用 rpmbuild 安装 RPM 期间的自定义选项

使用 rpmbuild 安装 RPM 期间的自定义选项

我想在 RPM 安装期间使用自定义选项。我使用 rpmbuild 来制作 RPM,因此我有 SPEC 文件。
我可以定义我自己的选项,我可以在 SPEC 文件中使用(例如,rpm -i --r_password=something acme-1.1-1.el7.noarch.rpm以及值r_密码将被放入一个文件 -> 由%postSPEC 文件中的部分控制)?

答案1

你不能。您可以在 %post 中使用宏。但它们是在构建时评估的,并且您只能在构建时覆盖它:

%{!?foo:%global foo SOME_DEFAULT}

%post
echo %{foo}

第一行定义了宏foo不存在时的一些默认值。

然后你可以运行:

rpmbuild -ba --define='foo bar' evil.spec

foo您可以在其中使用 content定义自己的宏bar。转速建立后,一切都已成定局,您无法更改转速。

但你可以这样做:

%post
cat /etc/myconfig.cfg | ... #do something based on content of the file

并告诉用户:

echo foo > /etc/myconfig.cfg; rpm -i acme-1.1-1.el7.noarch.rpm

相关内容