wiki:RpmScriplet

Version 5 (modified by daisuke, 10 years ago) (diff)

--

RPM スクリプト

RPM スクリプト(scriptlet) は、SPEC ファイルで記述されている RPM のインストール/削除時に 実行されるスクリプトです。

スクリプト記述方法

引数

rpm scriptlet はアップグレードやインストール、削除によって条件分岐をすることができます。

インストール アップグレード 削除
%pretrans $1 == 0 $1 == 0 (なし)
%pre $1 == 1 $1 == 2 (なし)
%post $1 == 1 $1 == 2 (なし)
%preun (なし) $1 == 1 $1 == 0
%postun (なし) $1 == 1 $1 == 0
%posttrans $1 == 0 $1 == 0 (なし)

スクリプト実行順序

新旧パッケージのスクリプトは以下のような順序で実行されます。 ここではアップグレード時のスクリプトの実行順を例に紹介します。

  1. %pretrans (新パッケージ)
  2. %pre (新パッケージ)
  3. (新パッケージインストール)
  4. %post (新パッケージ)
  5. %triggerin (他のパッケージ)
  6. %triggerin (新パッケージ)
  7. %triggerun (旧パッケージ)
  8. %triggerun (他のパッケージ)
  9. %preun (旧パッケージ)
  10. (旧パッケージの削除)
  11. %postun (旧パッケージ)
  12. %triggerpostun (旧パッケージ)
  13. %triggerpostun (他のパッケージ)
  14. %posttrans (新パッケージ)

なお、このうち %pretrans と %posttrans は rpm のトランザクション外で 実行されます。

よくある例

共有ライブラリ

インストール後、アンインストール後に ldconfig を実行する。

%post -p /sbin/ldconfig 
%postun -p /sbin/ldconfig

フォントパッケージ