rpmbuildを使用したRPMのインストール中のカスタマイズオプション

rpmbuildを使用したRPMのインストール中のカスタマイズオプション

RPMのインストール中にカスタムオプションを使用したいと思います。 RPMを作成するにはrpmbuildを使用するため、SPECファイルがあります。
SPECファイルで使用できる一意のオプションを定義できます(例:rpm -i --r_password=something acme-1.1-1.el7.noarch.rpmr_passwordファイルに保存されます - > %postSPECファイルのセクションによって制御されます)?

ベストアンサー1

あなたはできません。 %post でマクロを使用できます。ただし、ビルド時に評価され、ビルド時にのみオーバーライドできます。

%{!?foo:%global foo SOME_DEFAULT}

%post
echo %{foo}

最初の行は、fooマクロが存在しない場合のいくつかのデフォルト値を定義します。

その後、次を実行できます。

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

fooここでcontentを使用して独自のマクロを定義できます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

おすすめ記事