0

[rpm]依存関係にあるrpmパッケージ調査方法 [whatrequires]

よく忘れるので備忘を兼ね、記事おこし。

❏ man pageより抜粋

--whatprovides CAPABILITY
CAPABILITY 能力を提供するパッケージを検索する。
--whatrequires CAPABILITY
適切に機能するために CAPABILITY を必要とするパッケージを検索する。

パッケージをアンインストールしたりアップデートしたりする場合、 ある特定のパッケージに依存したパッケージを事前に知りたい場合があります。
パッケージの削除や更新がシステムに与える影響範囲を調べることができます。
パッケージ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
qemu-kvm-0.12.1.2-2.491.el6_8.3.x86_64

❏ opensshパッケージの依存関係を調べる

rpm -q --whatrequires openssh
openssh-clients-5.3p1-118.1.el6_8.x86_64
openssh-server-5.3p1-118.1.el6_8.x86_64

openssh-serverやopenssh-clientsから利用されていることがわかります。

openssh → ①openssh-server
     → ②openssh-clients

・①openssh-server パッケージの依存関係

$ rpm -q --whatrequires openssh-server
openssh-server を必要とするパッケージは存在しません。

・②openssh-clients パッケージの依存関係

$ 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

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

openssh-clients → git ⇔ perl-Git

纏めると、、、

私の環境でのopensshの依存関係は下記の通りとなりました。

openssh → ①openssh-server
     → ②openssh-clients → git ⇔ perl-Git

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

<CF>

[RPM]どのRPMパッケージでインストールされたかを確認する

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です