Viktor Asked: 2018-10-10 07:10:43 +0800 CST2018-10-10 07:10:43 +0800 CST 2018-10-10 07:10:43 +0800 CST 使用 rpmbuild 安装 RPM 期间的自定义选项 772 我想在 RPM 安装期间使用自定义选项。我使用 rpmbuild 来制作 RPM,所以我有 SPEC 文件。 我可以定义我自己的选项,我可以在 SPEC 文件中使用(例如rpm -i --r_password=something acme-1.1-1.el7.noarch.rpm,r_password的值将被放入一个文件 -> 由%postSPEC 文件的部分控制)? rpm rpmbuild 1 个回答 Voted Best Answer msuchy 2018-10-11T13:04:07+08:002018-10-11T13:04:07+08:00 你不能。您可以在 %post 中使用宏。但是它们是在构建期间进行评估的,您只能在构建期间覆盖它: %{!?foo:%global foo SOME_DEFAULT} %post echo %{foo} 当宏foo不存在时,第一行定义了一些默认值。 然后你可以运行: rpmbuild -ba --define='foo bar' evil.spec foo您在其中使用内容定义自己的宏bar。建立 rpm 后,一切都将付诸实施,您无法更改 rpm。 但是您可以执行以下操作: %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
你不能。您可以在 %post 中使用宏。但是它们是在构建期间进行评估的,您只能在构建期间覆盖它:
当宏
foo
不存在时,第一行定义了一些默认值。然后你可以运行:
foo
您在其中使用内容定义自己的宏bar
。建立 rpm 后,一切都将付诸实施,您无法更改 rpm。但是您可以执行以下操作:
并告诉用户: