パソコン鳥のブログ

アクセスカウンタ

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

<<   作成日時 : 2015/01/22 21:48   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

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

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




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



CentOS

次の手順で調べます。


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

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


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

実行例です。


$ rpm -qf /etc/httpd/conf/httpd.conf
httpd-2.2.15-39.el6.centos.x86_64
$ 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

次の手順で調べます。


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


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

実行例です。


$ dpkg -S /etc/apache2/apache2.conf
apache2: /etc/apache2/apache2.conf






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



CentOS

次の手順で調べます。


$ yum provides ファイル・コマンドのフルパス
または
$ yum provides */ファイル・コマンド名

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

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


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

実行例です。


$ 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

$ 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 とすると、下記のように複数パッケージが見つかります。


$ 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


下記を実行します。


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

または

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



実行例です。


$ apt-file search /usr/bin/sqlite3
sqlite3: /usr/bin/sqlite3



$ 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コマンドの場合です。


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


実行例です。


$ 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


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


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


実行例です。


$ 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

下記を実行します。

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


実行例です。


$ 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


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


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

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



実行例です。


$ repoquery sqlite
sqlite-0:3.6.20-1.el6.i686
sqlite-0:3.6.20-1.el6.x86_64

$ 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

下記を実行します。

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


実行例です。


$ 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まわりクイックメモ

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
コマンドのパッケージを探したり、パッケージのファイル一覧を取得する方法 パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる