Linuxディストリビューション:Red Hat Enterprise Linux Serverリリース6.10(Santiago)
環境:
サーバーで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パッケージに依存していないことを示しています(参照: Question-16634 ):
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
はこのパッケージに依存します。
理由:rpm --whatrequires
オプションの引数は、パッケージ名ではなく、パッケージによって提供される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
ではない)を意味します
これを試して、
通常、このパッケージに依存する他のパッケージがある場合、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
を参照してください