rpmコマンド備忘録(問い合わせ系)

とりあえずここに書いたことは書かない.

問い合わせは-qを基本で.個人的にはバッチを書くときとか記録に残すときには--queryとか長いオプションを使うほうが後で察しやすいのでお勧め.
あと-pをつけるとインストールしていなくても調べることができます(-pつけたときはファイル名で.つけなければインストールされたパッケージ名などを指定します)。

パッケージに含まれる設定ファイル群の表示

フルパス名だけ.

$ rpm -q --configfiles bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.rfc1912.zones
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback

ls -la並みの粒度の情報で

$ rpm -qv --configfiles bind
-rw-r-----    1 root    named                     163  1月  8 23:21 /etc/logrotate.d/named
-rw-r-----    1 root    named                     793  6月 30  2008 /etc/named.conf
-rw-r-----    1 root    named                     931  6月 21  2007 /etc/named.rfc1912.zones
-rw-r-----    1 root    named                       0  1月  8 23:21 /etc/rndc.conf
-rw-r-----    1 root    named                       0  1月  8 23:21 /etc/rndc.key
-rw-r--r--    1 root    root                      602  1月  8 23:21 /etc/sysconfig/named
-rw-r-----    1 root    named                    1892  2月 18  2008 /var/named/named.ca
-rw-r-----    1 root    named                     129  6月 21  2007 /var/named/named.empty
-rw-r-----    1 root    named                     152  6月 21  2007 /var/named/named.localhost
-rw-r-----    1 root    named                     145  6月 21  2007 /var/named/named.loopback
  • qvv(-vをもう一個追加の意味)でコマンドrpmの内部動作も表示できるお.

%configとかの情報も知りたいんだけどなー今度調べる

ドキュメント一覧の表示

いわゆるテキストドキュメントとかmanのファイルとか.

$ rpm -q --docfiles bind
/usr/share/doc/bind-9.5.1/CHANGES
/usr/share/doc/bind-9.5.1/COPYRIGHT
/usr/share/doc/bind-9.5.1/Copyright
/usr/share/doc/bind-9.5.1/README
/usr/share/doc/bind-9.5.1/arm/Bv9ARM-book.xml
(snip)
/usr/share/man/man8/named-compilezone.8.gz
/usr/share/man/man8/named.8.gz
/usr/share/man/man8/rndc-confgen.8.gz
/usr/share/man/man8/rndc.8.gz

これも-qvとかするとls -la風

パッケージ操作時に実行されるスクリプトの表示

preinstall ファイル配置前に実行する
postinstall ファイル配置後にに実行する
preuninstall ファイル削除前に実行する
postuninstall ファイル削除後に実行する

アップデートはuninstall && installなことに注意.
$1に1が渡されるんだっけ? って大小比較もしてるな.これは知らなかった.おいおい調べる.

$ rpm -q --scripts bind
preinstall scriptlet (using /bin/sh):
if [ "$1" -eq 1 ]; then
  /usr/sbin/groupadd -g 25 -f -r named >/dev/null 2>&1 || :;
  /usr/sbin/useradd  -u 25 -r -n -M -g named -s /sbin/nologin -d /var/named -c Named named >/dev/null 2>&1 || :;
fi;
:;
postinstall scriptlet (using /bin/sh):
/sbin/ldconfig
/sbin/chkconfig --add named
if [ "$1" -eq 1 ]; then
  if [ ! -e /etc/rndc.key ]; then
    /usr/sbin/rndc-confgen -a > /dev/null 2>&1
  fi
  [ -x /sbin/restorecon ] && /sbin/restorecon /etc/rndc.* /etc/named.* >/dev/null 2>&1 ;
  # rndc.key has to have correct perms and ownership, CVE-2007-6283
  [ -e /etc/rndc.key ] && chown root:named /etc/rndc.key
  [ -e /etc/rndc.key ] && chmod 0640 /etc/rndc.key
  [ -x /usr/sbin/bind-chroot-admin ] && /usr/sbin/bind-chroot-admin --sync;
fi
:;
preuninstall scriptlet (using /bin/sh):
if [ "$1" -eq 0 ]; then
  /sbin/service named stop >/dev/null 2>&1 || :;
  /sbin/chkconfig --del named || :;
fi;
:;
postuninstall scriptlet (using /bin/sh):
/sbin/ldconfig
if [ "$1" -ge 1 ]; then
  /sbin/service named try-restart >/dev/null 2>&1 || :;
fi;
:;

その他

備忘録なのでもしかしたら追記していくかも.