在RPM依赖项中指定备选方案

时间:2011-06-16 09:53:18

标签: java fedora rpm rhel

我有一个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创建一个RPM,一个用于RHEL

我不喜欢这两种选择。有没有其他方法可以实现Java依赖,其中提供者都有不同的名称?

编辑:第三个选项 - 为Fedora创建我自己的Java虚拟包,它依赖于Sun的JDK RPM。

1 个答案:

答案 0 :(得分:7)

我已经为Fedora创建了自己的java虚拟包,它依赖于sun的jdk rpm。

SPEC文件的相关部分,以防其他人帮助:

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