コマンドがどのRPMでインストールされたかを調べる

RedHat系のLinuxにおいて表題の通り。たまに使うのでメモ。

■ 環境

  • CentOS 7.1

■ ping

例として、`ping`コマンドがどのRPMパッケージでインストールされるのかを調べる。Dockerでとあるコンテナを起動した際に、`ping`が使えず、さてどのパッケージで入るのだろう?と思ったので。

対象のコマンド(今回では`ping`)が正しく使用できる環境で確認する。

$ which ping
/usr/bin/ping
$
$ rpm -qf /usr/bin/ping
iputils-20121221-6.el7_1.1.x86_64
$

`which`でフルパスを調べ、それを`rpm`の”-f“オプションに渡すのみである。

`ping`は”iputils“というRPMパッケージによってインストールされたことがわかる。

ちなみに、対象のRPMパッケージでどんなコマンドやファイルがインストールされたのかを確認するには下記である。

$ rpm -ql iputils
/etc/sysconfig/rdisc
/usr/bin/ping
/usr/bin/ping6
/usr/bin/tracepath
/usr/bin/tracepath6
/usr/lib/systemd/system/rdisc.service
/usr/sbin/arping
/usr/sbin/clockdiff
/usr/sbin/ifenslave
/usr/sbin/ping6
/usr/sbin/rdisc
/usr/sbin/tracepath
/usr/sbin/tracepath6
/usr/share/doc/iputils-20121221
/usr/share/doc/iputils-20121221/README.bonding
/usr/share/doc/iputils-20121221/RELNOTES
/usr/share/man/man8/arping.8.gz
/usr/share/man/man8/clockdiff.8.gz
/usr/share/man/man8/ifenslave.8.gz
/usr/share/man/man8/ping.8.gz
/usr/share/man/man8/ping6.8.gz
/usr/share/man/man8/rdisc.8.gz
/usr/share/man/man8/tracepath.8.gz
/usr/share/man/man8/tracepath6.8.gz
$

以上。