2013-08-22 26 views
0

我正在構建一個RPM,它現在將openjdk-6標記爲要求;我想增加對openjdk-7的支持;但我不確定如何修改spec文件以查找openjdk6或openjdk7作爲要求。我閱讀了虛擬包的概念,並試圖使用它。 我正在添加在RPM規範中要求openjdk6或openjdk7

Requires: libjvm.so 

在我的規格;並在我的%pre部分檢查6或7。但是構建的RPM軟件包不能識別libjvm.so。

error: Failed dependencies: 
     libjvm.so is needed by myapp.x86_64 

我試圖轉-q --provides的java-1.6.0-的OpenJDK並列出

libjvm.so()(64bit) 
libjvm.so(SUNWprivate_1.1)(64bit) 

我做虛擬包DEP錯了嗎?有沒有更清晰/明顯的方式來提及JDK6/7作爲依賴關係?

回答

1

如果您已在前一節中檢查openjdk 6或7,爲什麼不根據您的支票返回的值設置一個變量來填充要求?如果openjdk在中間價值沒有那麼差,您可以使用Requires: openjdk >= 1.6,但我認爲這不會起作用,因爲他們決定將版本值置於中間。

+0

我想這個變量在運行時會起作用;但令我失望的是,他們在建造時被提出。是的,它名字很差。例如; openjdk6提供的虛擬包jre至今爲openjdk7中的jre7 :)。在openjdk7中提供的所有組件在其名稱中有7個,jce7,jsse7等,不知道他們爲什麼做出這樣的決定 – vpram86

+0

啊,這是一個無賴。我應該更好地想到。你可能只是做兩個RPM? – Forrest

+0

否:(java是我的包的一小部分,爲此創建兩個看起來不太好。謝謝 – vpram86