RHEL / CentOS - 特定のパッケージに依存するすべてのrpmパッケージを見つける方法は?

RHEL / CentOS - 特定のパッケージに依存するすべてのrpmパッケージを見つける方法は?

Linux デプロイ: Red Hat Enterprise Linux Server バージョン 6.10 (San Diego)

コンテキスト:
サーバーから以前のバージョンのJavaをすべて削除する必要があります。
たとえば、Javaパスのリストがあります。

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre/bin/java

以下では、ファイルを所有するパッケージを見つけることができます。

rpm -qf /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el6_10.x86_64/jre/bin/java
java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64

java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64パッケージを削除しても安全であることを確認するために、すべての依存パッケージをどのように見つけますか?

次のコマンドは、このopenjdkパッケージに依存する他のパッケージがないことを示します(参照:質問-166343):

rpm -q --whatrequires  java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64
no package requires java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64

しかし、mysql-connector-javaパッケージによって異なります。
理由:--whatrequiresrpmオプションの引数はパッケージ名ではなくパッケージによって提供されるCAPABILITYであり、CAPABILITYで検索するのは簡単ではありません。

次のコマンドも結果を返しませんでした。

repoquery --requires --resolve --recursive java-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64

それでは、特定のパッケージに依存するすべてのrpmパッケージを簡単に識別する方法はありますか?
パッケージとはjava-1.8.0-openjdk-headless-1.8.0.201.b09-2.el6_10.x86_64(ではないjava-1.8.0-openjdk-headless)を意味します。

ベストアンサー1

この試み、

rpm -eこのパッケージは通常、このパッケージに依存する他のパッケージがある場合は削除されません(--nodepsもちろんこれをバイパスするために使用できます)。 @JeffSchallerが述べたように、rpm -e一緒に使用して--test何があるかを確認することもできます。error: Failed dependencies:

--test Don’t really uninstall anything, just go through the motions.  Useful in conjunction with the -vv option for debugging.

rpm -e -vv <package_name> - 調査するerror: Failed dependencies:

または

rpm -e -vv --test <package_name> - 調査するerror: Failed dependencies:

その他の参考資料man rpm

おすすめ記事