CUBE SUGAR CONTAINER

技術系のこと書きます。

CentOS: rpm でファイルが含まれるパッケージを調べる

なんか毎回忘れるのでメモっておく。 パッケージシステムの基盤として rpm を使っている Linux ディストリビューションでファイルがどのパッケージに含まれるか調べるやり方。

使った環境は次の通り。

$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
$ uname -r
3.10.0-327.18.2.el7.x86_64

ファイルがどのパッケージに含まれるか調べるには rpm コマンドに -qf オプションをつけてパスを指定する。

$ rpm -qf /usr/include/stdio.h
glibc-headers-2.17-106.el7_2.6.x86_64

ただし、注意点としてはこのやり方だと存在しないファイルを調べることはできない。 例えば上記で出てきたパッケージをアンインストールしてみよう。

$ sudo yum remove -y glibc-headers

当然ファイルはもうなくなっている。

$ ls /usr/include/stdio.h
ls: /usr/include/stdio.h にアクセスできません: そのようなファイルやディレクトリはありません

この状況で rpm コマンドを使っても含まれるパッケージを調べることはできない。

$ rpm -qf /usr/include/stdio.h
エラー: ファイル /usr/include/stdio.h: そのようなファイルやディレクトリはありません

いじょう。