#navi(../)
* rpmのインストール・アンインストール時に実行されるスクリプトを確認する方法 [#h0cb9cce]
rpmパッケージをインストール、アンインストール、アップグレードをすると、スクリプトを実行するrpmパッケージがあります。~
例えば、PostgerSQLのRPM構築用のspecファイルを見ると、postgresユーザの作成やグループの作成なども行われています。~

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* スクリプト確認コマンド [#af81145d]
以下の2つの方法でスクリプトを確認することができます。
- rpmファイルを指定してスクリプトを確認する
 rpm -qp --scripts rpmファイル
- 既にインストール済みのrpmパッケージのスクリプトを確認する
 rpm -q --scripts パッケージ名

* 動作確認 [#i9e19145]
Fedoraのミラーから適当なrpmパッケージファイルをダウンロードして確認しました。~
Fedora mirrors : http://mirrors.fedoraproject.org/publiclist/Fedora/

以下の実行例の出力を見るとわかりやすいです。~
preinstall, postinstall, preuninstall, postuninstall
の動作に対して定義されているスクリプトが表示されます。~
スクリプトが存在しない場合は何も表示されません。

** rpm -qp --scripts rpmファイル [#k7934275]
Fedoraのミラーから postgresql-server-9.0.4-1.fc15.i686.rpm パッケージファイルをダウンロードして確認しました。~
Fedora mirrors : http://mirrors.fedoraproject.org/publiclist/Fedora/

以下、コマンドの実行結果です。

 $ rpm -qp --scripts postgresql-server-9.0.4-1.fc15.i686.rpm
 warning: postgresql-server-9.0.4-1.fc15.i686.rpm: Header V3
RSA/SHA256 signature: NOKEY, key ID 069c8460
 preinstall scriptlet (using /bin/sh):
 /usr/sbin/groupadd -g 26 -o -r postgres >/dev/null 2>&1 || :
 /usr/sbin/useradd -M -N -g postgres -o -r -d /var/lib/pgsql -s /bin/bash \
         -c "PostgreSQL Server" -u 26 postgres >/dev/null 2>&1 || :
 postinstall scriptlet (using /bin/sh):
 /sbin/chkconfig --add postgresql
 /sbin/ldconfig
 preuninstall scriptlet (using /bin/sh):
 if [ $1 = 0 ] ; then
         /sbin/service postgresql stop >/dev/null 2>&1
         /sbin/chkconfig --del postgresql
 fi
 postuninstall scriptlet (using /bin/sh):
 /sbin/ldconfig
 if [ $1 -ge 1 ] ; then
         /sbin/service postgresql condrestart >/dev/null 2>&1 || :
 fi

preinstall, postinstall, preuninstall, postuninstallに対応したスクリプトが表示されます。

** rpm -q --scripts パッケージ名 [#wb735343]
以下、インストール済みのrpmパッケージの実行例です。~

- httpd
 $ rpm -q --scripts httpd
 preinstall scriptlet (using /bin/sh):
 # Add the "apache" user
 /usr/sbin/useradd -c "Apache" -u 48 \
         -s /sbin/nologin -r -d /var/www apache 2> /dev/null || :
 postinstall scriptlet (using /bin/sh):
 # Register the httpd service
 /sbin/chkconfig --add httpd
 preuninstall scriptlet (using /bin/sh):
 if [ $1 = 0 ]; then
         /sbin/service httpd stop > /dev/null 2>&1
         /sbin/chkconfig --del httpd
 fi
preinstall, postinstall, preuninstallに対してのスクリプトが表示されました。

- python
 $ rpm -q --scripts python
 $
何も表示されませんでした。

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
#br

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS