Rpm
使用 rpmbuild 安裝 RPM 期間的自定義選項
我想在 RPM 安裝期間使用自定義選項。我使用 rpmbuild 來製作 RPM,所以我有 SPEC 文件。
我可以定義我自己的選項,我可以在 SPEC 文件中使用(例如
rpm -i --r_password=something acme-1.1-1.el7.noarch.rpm
,r_password的值將被放入一個文件 -> 由%post
SPEC 文件的部分控制)?
你不能。您可以在 %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