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

Mik*_*ike 14 java fedora rpm rhel

我有一个Java应用程序,我打包为RPM.理想情况下,我想将Java指定为依赖项.我需要在Fedora和RHEL环境中安装.问题是RHEL Java被称为'java',而Fedora不提供Oracle/Sun的发行版,而是从Oracle的网站手动下载.根据您选择的包,Oracle的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.

Mik*_*ike 7

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

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

Name: fedora-virtual-java
Version: 1.6
Provides: java
Requires: jdk > 1.6
Run Code Online (Sandbox Code Playgroud)