【问题标题】:Specifying alternatives in RPM dependencies在 RPM 依赖项中指定备选方案
【发布时间】:2011-09-16 05:37:59
【问题描述】:

我有一个 Java 应用程序,我将其打包为 RPM。理想情况下,我想将 Java 指定为依赖项。我需要在 Fedora 和 RHEL 环境中安装。问题是 RHEL Java 被称为“java”,而 Fedora 不提供 Oracle/Sun 的发行版,只能从 Oracle 网站手动下载。 Java 的 Oracle 发行版称为“jre”或“jdk”,具体取决于您选择的包。

通常我会写在 RPM SPEC 文件中:

取决于:java >= 1.6

但是由于 RHEL 提供了“java”,而通过 Sun/Oracle 的 Fedora 提供了“jre”或“jdk”(我不能使用 OpenJDK),所以我有点束手无策。到目前为止,文档还没有显示出一种方法来执行 'java >= 1.6 || jre >= 1.6 || jdk >= 1.6' 等等。因为 Java 包不在我的控制之下,所以我不能只更改其中一个包来指定“提供:Java”。

目前我只看到两个选项:

  • 省略 Java 作为依赖项
  • 为 Fedora 创建一个 RPM,为 RHEL 创建一个

我对这两种选择都不感兴趣。有没有其他方法来实现提供者都具有不同名称的 Java 依赖关系?

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

【问题讨论】:

    标签: java fedora rpm rhel


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-01-03
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 2010-10-26
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      相关资源
      最近更新 更多