rpmコマンドの便利な使い方

スポンサーリンク
スポンサーリンク

パッケージの情報を表示する

rpm -qi パッケージ名

パッケージの名称、バージョン等を表示します。

実行例:

$ rpm -qi iptables
Name        : iptables                     Relocations: (not relocatable)
Version     : 1.4.7                             Vendor: CentOS
Release     : 9.el6                         Build Date: 2013年02月22日 10時45分54秒
Install Date: 2013年03月10日 05時04分05秒      Build Host: c6b9.bsys.dev.centos.org
Group       : System Environment/Base       Source RPM: iptables-1.4.7-9.el6.src.rpm
Size        : 853888                           License: GPLv2
Signature   : RSA/SHA1, 2013年02月24日 02時39分37秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.netfilter.org/
Summary     : Tools for managing Linux kernel packet filtering capabilities
Description :
The iptables utility controls the network packet filtering code in the
Linux kernel. If you need to set up firewalls and/or IP masquerading,
you should install this package.

パッケージ内にあるファイル(インストールされているファイル)を表示する

rpm -ql パッケージ名

パッケージ内にあるファイル(パッケージインストール時にインストールされるファイル)を表示します。

実行例:

$ rpm -ql iptables
/bin/iptables-xml-1.4.7
/etc/rc.d/init.d/iptables
/etc/sysconfig/iptables-config
/lib64/libip4tc.so.0-1.4.7
/lib64/libip4tc.so.0.0.0-1.4.7
/lib64/libip6tc.so.0-1.4.7
/lib64/libip6tc.so.0.0.0-1.4.7
/lib64/libipq.so.0-1.4.7
/lib64/libipq.so.0.0.0-1.4.7
/lib64/libiptc.so.0-1.4.7
   :

指定ファイルがどのパッケージに含まれているか調べる

rpm -qf ファイル名

指定ファイルがどのパッケージに含まれているか調べ、そのパッケージ名を表示します。

実行例:

$ rpm -qf /sbin/iptables-1.4.7
iptables-1.4.7-9.el6.x86_64

なお、rpm -qf ファイル名 で指定するファイルは、パッケージ内にあるファイル(パッケージインストールでインストールされるファイル)でなくてはなりません。

例えば、/sbin/iptables はどのパッケージにも含まれていません。
従って rpm -qf /sbin/iptables を実行すると、「ファイル /sbin/iptables はどのパッケージにも属していません。」と表示が出て失敗します。

パッケージインストール時からファイルに変更が無いか調べる

rpm -V パッケージ名

パッケージインストールでインストールされたファイルの情報と、rpmデータベースに格納されているパッケージのメタデータから得られたファイルに関する情報とを比較し、結果を表示します。
変更があった場合、下記のような表示がなされます。

S.5....T.  c /etc/postfix/main.cf

最初の8文字は、比較の結果を示します。表示される文字は、次を意味しています。

 S  ファイルサイズが異なっている
 5  MD5チェックサムが異なる
 L  シンボリックリンクが変更されている
 T  ファイルの更新時刻が変更されている
 D  デバイスファイルが変更されている
 U  ファイルの所有者が変更されている
 G  ファイルの所有グループが変更されている
 M  ファイルのパーミッションが変更されている

例えば、以下の実行例はメールサーバソフト postfix を調べています。
postfixの設定ファイル main.cf , master.cf を変更している為、変更を検出しています。
S.5….T は、「ファイルサイズが異なっている」「MD5チェックサムが異なる」「ファイルの更新時刻が変更されている」ことを示しています。

実行例:

$ rpm -V postfix
S.5....T.  c /etc/postfix/main.cf
S.5....T.  c /etc/postfix/master.cf

以上で紹介したrpmの機能は下記記事でも使用しています。
下記記事では、誤検出された /sbin/init の改ざんについて、rpm -V コマンドを実行してパッケージインストール以降、/sbin/initに変更が無いことを確認しています。

chkrootkit のSuckit誤検知の修正

参考

Man page of RPM

コメント

タイトルとURLをコピーしました