如何在 Debian deb 包中配置 Java 7 或 Java 8 依赖项?
How to configure Java 7 OR Java 8 dependency in Debian deb package?
我正在为我们的专有软件构建一个 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 包?
要检查 "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:
行可能会更好。
我正在为我们的专有软件构建一个 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 包?
要检查 "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:
行可能会更好。