我有一个Java应用程序,我打包为RPM。理想情况下,我想将Java指定为依赖项。我需要在Fedora和RHEL环境中安装。问题是RHEL Java被称为'java',而Fedora不提供Oracle / Sun的发行版,而是从Oracle的网站手动下载。根据您选择的软件包,Java的Oracles分发称为“jre”或“jdk”。
通常在RPM SPEC文件中我会写:
取决于:java> = 1.6
但是由于RHEL提供'java',并且Fedora通过Sun / Oracle提供'jre'或'jdk'(我不能使用OpenJDK),我有点绑定。到目前为止,文档还没有显示出'java> = 1.6 ||的方法jre> = 1.6 || jdk> = 1.6'等因为Java包不在我的控制之下,我不能只改变其中一个来指定'提供:Java'。
目前我只看到两个选择:
我不喜欢这两种选择。有没有其他方法可以实现Java依赖,其中提供者都有不同的名称?
编辑:第三个选项 - 为Fedora创建我自己的Java虚拟包,它依赖于Sun的JDK RPM。
答案 0 :(得分:7)
我已经为Fedora创建了自己的java虚拟包,它依赖于sun的jdk rpm。
SPEC文件的相关部分,以防其他人帮助:
Name: fedora-virtual-java
Version: 1.6
Provides: java
Requires: jdk > 1.6