2011-06-16 47 views
14

我有一個Java應用程序,我將其打包爲RPM。理想情況下,我想指定Java作爲依賴項。我需要在Fedora和RHEL環境中進行安裝。問題是RHEL Java被稱爲'java',而Fedora不提供Oracle/Sun的發行版,只留下一個從Oracle網站手動下載。 Java的ORACLE分發被稱爲'jre'或'jdk',具體取決於您選擇的包。在RPM依賴項中指定替代方案

通常在RPM SPEC文件我會寫:

取決於:JAVA> = 1.6

但由於RHEL提供的Java',和Fedora經由太陽/ Oracle提供 'JRE' 或「JDK '(我不能使用OpenJDK),我有點困惑。到目前爲止,文檔還沒有顯示出如何執行'java> = 1.6 ||的方法jre> = 1.6 || jdk> = 1.6'等等。因爲Java包不在我的控制之下,所以我不能只改變一個或另一個來指定'提供:Java'。

目前我看到的只有兩個選擇:

  • 省略Java作爲一個依賴
  • 創建Fedora的,一個一個RPM爲RHEL

我不熱衷於任一選項。有沒有其他方法可以實現Java依賴性,其中提供者都有不同的名稱?

編輯:第三個選項 - 爲Fedora創建我自己的Java虛擬包,它依賴於Sun的JDK RPM。

回答

7

我已經爲創建我自己的Java虛擬軟件包的Fedora具有依賴於太陽的jdk rpm。

SPEC文件的相關部分的情況下,它可以幫助別人:

Name: fedora-virtual-java 
Version: 1.6 
Provides: java 
Requires: jdk > 1.6