なんか毎回忘れるのでメモっておく。 パッケージシステムの基盤として 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: そのようなファイルやディレクトリはありません
いじょう。