【问题标题】:How to configure Java 7 OR Java 8 dependency in Debian deb package?如何在 Debian deb 包中配置 Java 7 或 Java 8 依赖项?
【发布时间】:2016-03-23 14:58:29
【问题描述】:

我正在为我们的专有软件构建一个 Debian *.deb 软件包。 该软件是基于 Java 的,所以我认为如果 deb 包首先检查已安装的 Java 包会很好。

Package: [[name]]
Version: [[version]]
Section: non-free
Priority: low
Architecture: all
Description: [[description]]
Maintainer: company <email @ address>
Homepage: http://product.website
Depends: java7-runtime-headless

问题:

  • 如果安装了 Oracle JDK 7,则会失败。似乎这只会检查 OpenJDK 7 包。 如何检查 Java 包、Oracle 和 OpenJDK?
  • 如果安装了 OpenJDK 8,这将失败,但它不应该。我们的软件使用 Java 7 和 Java 8 运行。如何检查 JDK 7 或 JDK 8?

总结:如何配置我的包的 Depends: 部分,以便 dpkg 检查版本 7 或 8 中的任何 Java/JDK 包?

【问题讨论】:

    标签: java linux debian deb dpkg


    【解决方案1】:

    要检查“ANY”Java/JDK 包,您可以在Depends: 行中使用管道符号(“|”)。例如,下面是 Jessie 中 tomcat7-common 包的行:

    Depends: libtomcat7-java (>= 7.0.56-3), default-jre-headless | java6-runtime-headless | java6-runtime | java-6-runtime
    

    但是,请注意,如果您使用 Depends: 行,dpkg 只会认为它知道的包满足它。如果有人安装了 Oracle Java 或其他供应商的 JDK,但没有使用 dpkg,或者如果 .deb 没有在 Provides: 行中列出正确的关键字,则它将无法正常工作。因此,使用Suggests:Recommends: 行可能会更好。

    【讨论】:

    • 谢谢大卫!你说得对,Depends: 似乎太严格了。我将改用Suggests:,并鼓励用户在安装之前手动检查他们的java版本...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2019-12-31
    相关资源
    最近更新 更多