#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