Rpm

RPM:失敗的 jre 依賴項,即使安裝了該 JRE 版本

  • October 8, 2013

我正在嘗試安裝一個包,但它無法報告缺少的依賴項:

# 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,我該如何檢查?

包管理器就是這樣 - 一個包資訊的管理器,它並不真正知道你的系統上有什麼,它安裝了什麼包,因此它假設你的系統上有什麼。

這種設計的一個明顯問題是兩者可能會變得不同步,例如,如果您通過從 oracle 下載 JRE 手動安裝它,那麼包管理器不知道它在那裡,因此它的工作是指出失敗的依賴鏈。

有多個選項,假設這是問題(檢查你的 rpm 包列表,我忘記了 rpm 的參數),按醜陋的順序排列:(1)你可以安裝 JRE 的發行版,這將使包管理器高興,(2)您可以捏造軟體包管理器,使其認為實際安裝了依賴“jre version 1.7.0”,無論是否安裝它,然後顛覆 java 二進製文件以使用您安裝的版本,或者(3)您可以只安裝 tomcat 與–nodeps 選項忽略依賴關係。請注意(3)是一個滑坡,隨著時間的推移,您最終會跳過更多的依賴關係和子依賴關係。

引用自:https://unix.stackexchange.com/questions/94091