未インストールのパッケージに含まれるファイル一覧を確認する方法(CentOS)

ふと思いだせなかったので
CentOSであればrpmの-qplオプションを指定することで未インストールパッケージ一覧を見ることが可能です。

rpm -qpl xxx.rpm

但し、これで見ようとするとrpmパッケージを手元にダウンロードしておく必要あります。

そこで、まずyumrpmパッケージをインストールせずダウンロードだけしておきます。

ダウンロードのみを実行するためには、yum-downloadonlyパッケージを予めインストールしておく必要があります。
(CentOS6以降だとyum-plugin-downloadonlyという名前のパッケージに変わっているようです。)

$ yum install yum-downloadonly

以降、yum installコマンドのオプションとして--downloadonlyオプションが利用可能になる。

$ yum install --downloadonly パッケージ名

ダウンロードしたrpmパッケージは/var/cache/yum以下に配置されています。
yum insatll --downloadonly --downloaddir=/tmp パッケージ名
とすることで指定したところにダウンロードすることも可能です。

例えば、mongodb-serverをepelリポジトリからダウンロードした場合は以下のようなところに配置されています。

$ ls /var/cache/yum/epel/packages/mongodb-server-1.6.4-1.el5.x86_64.rpm 
/var/cache/yum/epel/packages/mongodb-server-1.6.4-1.el5.x86_64.rpm

ディレクトリ指定した場合はこのようになります

$ yum install --downloadonly --downloaddir=/tmp mongodb-server
$ ls /tmp/mongodb-server-1.6.4-1.el5.x86_64.rpm 
/tmp/mongodb-server-1.6.4-1.el5.x86_64.rpm

あとはrpmコマンドでファイル一覧を確認すればOKです。

$ rpm -qpl /tmp/mongodb-server-1.6.4-1.el5.x86_64.rpm 
/etc/logrotate.d/mongodb
/etc/mongodb.conf
/etc/rc.d/init.d/mongod
/usr/bin/mongod
/usr/bin/mongos
/usr/com/mongodb
/usr/share/man/man1/mongod.1.gz
/usr/share/man/man1/mongos.1.gz
/var/log/mongodb
/var/run/mongodb

これでインストールを実施する前にどういう形でファイルが配置されるかを確認しておくことが可能になります。

逆に、あるファイルがどのパッケージに含まれているかを確認するためにはrpmコマンドで以下のように実施すればOKです。

$ rpm -qf /usr/bin/mongod
mongodb-server-1.6.4-1.el5