RPM: JRE バージョンがインストールされているにもかかわらず、JRE の依存関係が失敗しました

RPM: JRE バージョンがインストールされているにもかかわらず、JRE の依存関係が失敗しました

パッケージをインストールしようとしていますが、依存関係が不足していると報告されて失敗します。

# rpm -ivh *
error: Failed dependencies:
    jre >= 1.7.0 is needed by Tomcat-7.0.37-1.noarch

同時に、Java バージョンを確認すると、次のようになります。

# java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Server VM (build 24.0-b56, mixed mode)

rpm が必要としているのは java ではないでしょうか? 何か見落としているのでしょうか? rpm は別の java を認識しているのでしょうか? それを確認するにはどうすればいいのでしょうか?

答え1

パッケージ マネージャーは、パッケージ情報を管理するだけのものであり、システムに何があるかは実際には把握していません。ただ、どのパッケージがインストールされているか、したがってシステムに何があるかと想定しているだけです。

この設計の明らかな問題は、2 つが同期しなくなる可能性があることです。たとえば、Oracle から JRE をダウンロードして手動でインストールした場合、パッケージ マネージャーは JRE が存在することを認識できず、失敗した依存関係チェーンを指摘する役割を果たします。

これが問題だと仮定すると、(rpm パッケージ リストを確認してください。rpm のパラメータは忘れました) 複数のオプションがあります (醜い順に): (1) ディストリビューション バージョンの JRE をインストールできます。これにより、パッケージ マネージャーが満足します。 (2) パッケージ マネージャーを欺いて、依存関係 "jre version 1.7.0" が実際にインストールされていると認識させ (インストールの有無にかかわらず)、Java バイナリを破壊してインストールされたバージョンを使用するようにできます。 (3) 依存関係を無視する --nodeps オプションを使用して tomcat をインストールできます。 (3) は危険な方法であり、時間の経過とともにさらに多くの依存関係とサブ依存関係をスキップすることになることに注意してください。

関連情報