このエントリーをはてなブックマークに追加

パッケージをアンインストールしたりアップデートしたりする場合に、 ある特定のパッケージに依存したパッケージを事前に知りたい場合があります。 パッケージの削除や更新がシステムに与える影響範囲を調べることができます。 パッケージAを使用しているパッケージを見つけるにはwhatrequiresオプションを使用します。

rpm -q --whatrequires <パッケージA>

たとえば、glibcパッケージを直接利用しているパッケージには、 以下のようなものがあります。

$ rpm -q --whatrequires glibc
glibc-common-2.12-1.80.el6_3.3.x86_64
libstdc++-4.4.6-4.el6.x86_64
pam-1.1.1-10.el6_2.1.x86_64
glibc-headers-2.12-1.80.el6_3.3.x86_64
glibc-devel-2.12-1.80.el6_3.3.x86_64

また、opensshパッケージは、openssh-serverやopenssh-clientsから利用されていることがわかります。

rpm -q --whatrequires openssh
openssh-server-5.3p1-81.el6.x86_64
openssh-clients-5.3p1-81.el6.x86_64

さらにこの中のopenssh-clientsは以下のように、gitパッケージから必要とされており、 gitパッケージはさらにperl-Gitから必要とされています。

$ rpm -q --whatrequires openssh-server
openssh-server を必要とするパッケージは存在しません。
$ rpm -q --whatrequires openssh-clients
git-1.7.1-2.el6_0.1.x86_64
$ rpm -q --whatrequires git
perl-Git-1.7.1-2.el6_0.1.noarch
$ rpm -q --whatrequires perl-Git
git-1.7.1-2.el6_0.1.x86_64

なお、whatrequiresオプションの結果は、インストールされている状況に依存します。 ディストリビューションで一定の情報ではありません。 上記の結果は、筆者の開発環境のサーバにインストールされているrpmパッケージの構成です。




記事一覧へ