0

[rpm]どのrpmパッケージでインストールされたかを確認する

よく忘れるので備忘を兼ね、記事おこし。

rpm -qf

rpm -q –whatprovides

Linuxを使用していると、あるファイルが どのrpmパッケージに含まれているのかを知りたくなることが たまにあります。

rpm(や、yum)でインストールされたものであれば、
以下のコマンドでどのrpmパッケージに含まれていたものかを 確認することが出来ます。

$ rpm -qf <ファイルパス>

または

$ rpm -q --whatprovides <ファイルパス>

whatprovidesオプションよりもfの方が短いので、 以下では、fオプションを利用しています。
ディストリビューションによって、もしもfが使えなかったら whatprovidesオプションを使ってみてください。

たとえば、この違いきちんとわかってますか?
という意味も兼ねて、下記ファイルの構成元を確認してみます。

/etc/ssh/sshd_config
/etc/ssh/ssh_config
$ rpm -qf /etc/ssh/sshd_config
openssh-server-5.3p1-81.el6.x86_64
$ rpm -qf /etc/ssh/ssh_config
openssh-clients-5.3p1-81.el6.x86_64

いっぺんに問い合わせることも出来ます。

$ rpm -qf /etc/ssh/ssh_config /etc/ssh/sshd_config
openssh-clients-5.3p1-81.el6.x86_64
openssh-server-5.3p1-81.el6.x86_64

引数に与えた順に表示されますので、
どちらがどちらかのパッケージのモノかは順序でわかります。

/etc/ssh/sshd_config → openssh-server
/etc/ssh/ssh_config → openssh-clients

$ rpm -qf /etc/ssh/sshd_config /etc/ssh/ssh_config
openssh-server-5.3p1-81.el6.x86_64
openssh-clients-5.3p1-81.el6.x86_64

もっといっぺんにワイルドカードで調べることもできます。

$ rpm -qf /etc/ssh/*
openssh-5.3p1-81.el6.x86_64
openssh-clients-5.3p1-81.el6.x86_64
ファイル /etc/ssh/ssh_host_dsa_key はどのパッケージにも属していません。
ファイル /etc/ssh/ssh_host_dsa_key.pub はどのパッケージにも属していません。
ファイル /etc/ssh/ssh_host_key はどのパッケージにも属していません。
ファイル /etc/ssh/ssh_host_key.pub はどのパッケージにも属していません。
ファイル /etc/ssh/ssh_host_rsa_key はどのパッケージにも属していません。
ファイル /etc/ssh/ssh_host_rsa_key.pub はどのパッケージにも属していません。
openssh-server-5.3p1-81.el6.x86_64
ファイル /etc/ssh/sshd_config~ はどのパッケージにも属していません。 

ほかのファイルでも試してみます。
yumの設定ファイルの一つである/etc/yum.repos.d/CentOS-Base.repoは
OSの本体に組み込まれていることがわかります。

$ rpm -qf /etc/yum.repos.d/CentOS-Base.repo 
centos-release-6-3.el6.centos.9.x86_64
SELinuxの設定ファイルはselinux-policyパッケージ
$ rpm -qf /etc/selinux/config 
selinux-policy-3.7.19-155.el6_3.noarch
/etc/wgetrcはwgetインストール時にインストールされたもののようです。
$ rpm -qf /etc/wgetrc 
wget-1.12-1.4.el6.x86_64

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です