コマンドのパッケージを探したり、パッケージのファイル一覧を取得する方法

ALL
スポンサーリンク

CentOS/Ubuntuのパッケージ管理で、次のことを行う方法です。

・システム上のファイルやコマンドは、どのパッケージでインストールされたか調べる
・特定のファイルやコマンドを入れるには、どのパッケージをインストールすれば良いか調べる
・パッケージ(インストール済み)でインストールされたファイルはどれかリストアップする
・パッケージ(未インストール)でインストールされるファイルを調べる

システム上のファイルやコマンドは、どのパッケージでインストールされたか調べる

CentOS

次の手順で調べます。


nbsp;rpm -qf ファイル・コマンドのフルパス rpm名が表示されます

nbsp;yum list installed rpm名 パッケージ名が「インストール済みパッケージ」または「Installed Packages」の行の次に表示されます

「ファイル・コマンドのフルパス」で指定するものは、シンボリックリンクでは無い方が良いです。

実行例です。


nbsp;rpm -qf /etc/httpd/conf/httpd.conf httpd-2.2.15-39.el6.centos.x86_64

nbsp;yum list installed httpd-2.2.15-39.el6.centos.x86_64 読み込んだプラグイン:downloadonly, fastestmirror, security Loading mirror speeds from cached hostfile  * epel: ftp.iij.ad.jp インストール済みパッケージ httpd.x86_64                               2.2.15-39.el6.centos                                @base

Ubuntu

次の手順で調べます。


nbsp;dpkg -S ファイル・コマンドのフルパス パッケージ名:ファイル・コマンドのフルパス が表示されます。

「ファイル・コマンドのフルパス」で指定するものは、シンボリックリンクはダメです。

実行例です。


nbsp;dpkg -S /etc/apache2/apache2.conf apache2: /etc/apache2/apache2.conf

特定のファイルやコマンドを入れるには、どのパッケージをインストールすれば良いか調べる

CentOS

次の手順で調べます。


nbsp;yum provides ファイル・コマンドのフルパス または

nbsp;yum provides */ファイル・コマンド名 rpmパッケージ名が表示されます

nbsp;yum list rpmパッケージ名 パッケージ名が「インストール済みパッケージ」または「Installed Packages」の行の次に表示されます

ファイル・コマンドのフルパスが分かっていれば、yum provides で指定します。
フルパスが分からない場合は、*/ファイル・コマンド名 で指定します。

実行例です。


nbsp;yum provides /etc/init.d/ntpd Loaded plugins: downloadonly, fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile  * base: ftp.riken.jp  * extras: ftp.riken.jp  * updates: ftp.riken.jp ntp-4.2.6p5-1.el6.centos.x86_64 : The NTP daemon and utilities Repo        : installed Matched from: Other       : Provides-match: /etc/init.d/ntpd

nbsp;yum list ntp-4.2.6p5-1.el6.centos.x86_64 Loaded plugins: downloadonly, fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile  * base: ftp.riken.jp  * extras: ftp.riken.jp  * updates: ftp.riken.jp Installed Packages ntp.x86_64 4.2.6p5-1.el6.centos @anaconda-CentOS-201311272149.x86_64/6.5

備考:

yum provides */ファイル・コマンド名 の形式では、指定したファイルを含むパッケージが複数見つかることがあるので、ファイル・コマンドのフルパスが分かっていれば、それを指定した方が確実です。
例えば、yum provides */sqlite3.h とすると、下記のように複数パッケージが見つかります。


nbsp;yum provides */sqlite3.h 読み込んだプラグイン:downloadonly, fastestmirror, security Loading mirror speeds from cached hostfile  * epel: ftp.iij.ad.jp xulrunner-devel-17.0.10-1.el6.centos.x86_64 : Development files for Gecko リポジトリー        : base 一致          : ファイル名    : /usr/include/xulrunner-17.0.10/sqlite3.h xulrunner-devel-17.0.10-1.el6.centos.i686 : Development files for Gecko リポジトリー        : base 一致          : ファイル名    : /usr/include/xulrunner-17.0.10/sqlite3.h sqlite-devel-3.6.20-1.el6.x86_64 : Development tools for the sqlite3 embeddable SQL database engine リポジトリー        : base 一致          : ファイル名    : /usr/include/sqlite3.h sqlite-devel-3.6.20-1.el6.i686 : Development tools for the sqlite3 embeddable SQL database engine リポジトリー        : base 一致          : ファイル名    : /usr/include/sqlite3.h

また、yum providesで指定する「ファイル・コマンドのフルパス」は、パッケージインストール時にハードリンクやシンボリックリンクとなるものは、見つからないことがあります。
例えば、mysql-server のインストールで ハードリンク /etc/rc.d/init.d/mysqld , /etc/init.d/mysqld が出来ます。
これらはハードリンクですが、下記のように一方のみ、yum providesで検索成功します。

成功 : yum provides /etc/rc.d/init.d/mysqld
失敗 : yum provides /etc/init.d/mysqld

Ubuntu

apt-fileコマンドを使います。

apt-file をインストールします。

sudo apt-get install apt-file

毎回 apt-file使用前に下記を実行します。

apt-file update

下記を実行します。


nbsp;apt-file search ファイル・コマンドのフルパス パッケージ名:ファイル・コマンドのフルパス が表示されます。 または

nbsp;apt-file -x search "ファイル・コマンド名$" ファイル・コマンド名を含むパッケージが表示されます。 表示は、パッケージ名:ファイル・コマンド名 の書式で列挙されます。

実行例です。


nbsp;apt-file search /usr/bin/sqlite3 sqlite3: /usr/bin/sqlite3

nbsp;apt-file -x search "mysqld$" mariadb-server-core-5.5: /usr/sbin/mysqld mysql-server-5.5: /etc/apparmor.d/usr.sbin.mysqld mysql-server-5.6: /etc/apparmor.d/usr.sbin.mysqld mysql-server-core-5.5: /usr/sbin/mysqld mysql-server-core-5.6: /usr/sbin/mysqld percona-xtradb-cluster-server-5.5: /usr/sbin/mysqld

パッケージ(インストール済み)でインストールされたファイルはどれかリストアップする

CentOS

rpmコマンドを使用する場合と、repoqueryコマンドを使用する場合の2通りあります。

まず、rpmコマンドの場合です。


nbsp;rpm -ql パッケージ名 指定されたパッケージでインストールされたファイル一覧が表示されます。

実行例です。


nbsp;rpm -ql sqlite /usr/bin/sqlite3 /usr/lib64/libsqlite3.so.0 /usr/lib64/libsqlite3.so.0.8.6 /usr/share/doc/sqlite-3.6.20 /usr/share/doc/sqlite-3.6.20/README /usr/share/man/man1/sqlite3.1.gz

次に、repoqueryコマンドを使用する場合です。

repoqueryコマンドを使用するには、yum-utilsパッケージのインストールが必要です。

yum install yum-utils

コマンドは下記で実行します。


nbsp;repoquery --installed --list パッケージ名 指定されたパッケージでインストールされたファイル一覧が表示されます。

実行例です。


nbsp;repoquery --installed --list sqlite /usr/bin/sqlite3 /usr/lib64/libsqlite3.so.0 /usr/lib64/libsqlite3.so.0.8.6 /usr/share/doc/sqlite-3.6.20 /usr/share/doc/sqlite-3.6.20/README /usr/share/man/man1/sqlite3.1.gz

Ubuntu

下記を実行します。


nbsp;dpkg -L パッケージ名 パッケージでインストールされたファイルが表示されます。

実行例です。


nbsp;dpkg -L firefox /. /usr /usr/lib /usr/lib/firefox /usr/lib/firefox/defaults /usr/lib/firefox/defaults/pref /usr/lib/firefox/defaults/pref/channel-prefs.js /usr/lib/firefox/defaults/pref/vendor-gre.js /usr/lib/firefox/libplds4.so /usr/lib/firefox/firefox /usr/lib/firefox/libfreebl3.chk /usr/lib/firefox/libnssdbm3.chk /usr/lib/firefox/libnssckbi.so : :

パッケージ(未インストール)でインストールされるファイルを調べる

CentOS
repoqueryコマンドを使用します。
使用するには、yum-utilsパッケージのインストールが必要です。

yum install yum-utils

コマンドは下記で実行します。


nbsp;repoquery パッケージ名 rpmパッケージが表示されます

nbsp;repoquery --list rpmパッケージ名 ファイル一覧が表示されます

実行例です。


nbsp;repoquery sqlite sqlite-0:3.6.20-1.el6.i686 sqlite-0:3.6.20-1.el6.x86_64

nbsp;repoquery --list sqlite-0:3.6.20-1.el6.x86_64 /usr/bin/sqlite3 /usr/lib64/libsqlite3.so.0 /usr/lib64/libsqlite3.so.0.8.6 /usr/share/doc/sqlite-3.6.20 /usr/share/doc/sqlite-3.6.20/README /usr/share/man/man1/sqlite3.1.gz

Ubuntu

下記を実行します。


nbsp;apt-file -F show パッケージ名 パッケージでインストールされたファイルが表示されます。

実行例です。


nbsp;apt-file -F show sqlite3 sqlite3: /usr/bin/sqlite3 sqlite3: /usr/share/doc/sqlite3/changelog.Debian.gz sqlite3: /usr/share/doc/sqlite3/copyright sqlite3: /usr/share/man/man1/sqlite3.1.gz

参考

第04回 「apt-get, dpkg コマンドでパッケージ管理」
APT HOWTO (Obsolete Documentation)
わからないファイルのパッケージを探すyum providesとapt-file search:学びの道案内:So-netブログ
rpmコマンドの便利な使い方 パソコン鳥のブログ
(Linux)パッケージ管理コマンドの使い方 – OasisHalfmoon
yumでインストールされたファイル一覧を表示する方法 repoquery –list
ubuntu コンパイル入門 ~ PCまわりクイックメモ

コメント