Rpm

使用 rpmbuild 安裝 RPM 期間的自定義選項

  • October 10, 2018

我想在 RPM 安裝期間使用自定義選項。我使用 rpmbuild 來製作 RPM,所以我有 SPEC 文件。

我可以定義我自己的選項,我可以在 SPEC 文件中使用(例如rpm -i --r_password=something acme-1.1-1.el7.noarch.rpmr_password的值將被放入一個文件 -> 由%postSPEC 文件的部分控制)?

你不能。您可以在 %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

引用自:https://unix.stackexchange.com/questions/474275