
- コンパクトで軽量な日本語ディストリビューション -
RPMパッケージをインストールするとき、パッケージの展開後に行うことを書く。
ここでの処理で必要となるパッケージ等は、Requires(post): で指定します。
%post
if [ "$1" = 0 ] ; then
%{_syssbindir}/install-info %{_infodir}/hoge.info.gz %{_infodir}/dir
fi%{_syssbindir}/install-info というコマンドが必要になるので、 Requires(post): %{_syssbindir}/install-info とします。
info ファイルは、アンインストール時にも処理が必要になります。 セクション III.11.3 - %preunセクション も参照してください。
%post
%{_syssbindir}/ldconfig
%post -p %{_syssbindir}/ldconfig正確にいうと、タグに -pオプションをつけた場合は、 /bin/sh ではなく別のプログラムでスクリプト部分を解釈(interpret)させるということになります。 この場合には Requires(interp) として登録されます。(%postなので Requires(post) としても登録されます。)
%post -p %{_syssbindir}/ldconfig
# update ld.so.cache
%files# update ld.so.cache
エラーを起こさないようにするには
%post -p %{_syssbindir}/ldconfig
%files%post
%{_syssbindir}/ldconfig
# update ld.so.cache
%files一つ目の例では、%{_syssbindir}/ldconfig がスクリプト部分を実行するために起動し(、起動した時点で ld.so.cache が更新されますが)、スクリプト部分については何も書かれていないので何もせずに終了します。
二つ目の例では、/bin/sh が起動し、スクリプト部分を解釈し %{_syssbindir}/ldconfig を実行、# 以下はコメントなので無視します。