首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何依赖java 11,使其能够被openjdk或Oracle java 11包所满足?

如何依赖java 11,使其能够被openjdk或Oracle java 11包所满足?
EN

Unix & Linux用户
提问于 2019-04-09 10:40:03
回答 1查看 1.1K关注 0票数 4

我正在尝试创建一个依赖于java 11的rpm包;但是,openjdk和Oracle java 11包似乎不提供任何重叠的java虚拟包。

OpenJDK Java 11提供:

代码语言:javascript
复制
$ repoquery --provides java-11-openjdk
java-11 = 1:11.0.2.7-0.el7_6
java-11-openjdk = 1:11.0.2.7-0.el7_6
java-11-openjdk(x86-32) = 1:11.0.2.7-0.el7_6
jre-11 = 1:11.0.2.7-0.el7_6
jre-11-openjdk = 1:11.0.2.7-0.el7_6
libjawt.so
java-11 = 1:11.0.2.7-0.el7_6
java-11-openjdk = 1:11.0.2.7-0.el7_6
java-11-openjdk(x86-64) = 1:11.0.2.7-0.el7_6
jre-11 = 1:11.0.2.7-0.el7_6
jre-11-openjdk = 1:11.0.2.7-0.el7_6

Oracle Java 11安装程序提供:

代码语言:javascript
复制
$ rpm -qp --provides /tmp/jdk-11.0.2_linux-x64_bin.rpm 
jdk
jaxp_parser_impl
xml-commons-apis
java
java-11.0.2
java-fonts
jre
jre-11.0.2
jdk-11.0.2 = 2000:11.0.2-ga
jdk-11.0.2(x86-64) = 2000:11.0.2-ga

如何将包的依赖关系设置为足够灵活,以便与任何一个java11一起工作?

我认为rpm 布尔依赖关系可能会有所帮助,但我无法找到将rpm更新到4.13版本的任何信息。如果我将包依赖项设置为:Requires: jre-11 >= 11, rpm >= 4.13安装失败:

代码语言:javascript
复制
Error: Package: MYPACKAGE
           Requires: rpm >= 4.13
           Installed: rpm-4.11.3-32.el7.x86_64 (installed)
               rpm = 4.11.3-32.el7
           Available: rpm-4.11.3-35.el7.x86_64 (base)
               rpm = 4.11.3-35.el7

rpm的4.13版本似乎没有?我正在使用CentOS7,但在RHEL7.5上也会出现同样的情况。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-04-23 14:06:22

因此,正如您所指出的,最好是两个包都可以有一个共同的“提供”。

由于您可能无法做到这一点,所以另一种选择是创建一个伪RPM作为Oracle Java 11 RPM的代理。

  • Namejava-11-oracle (例如)
  • Providesjava-11或openjdk的任何其他相关值
  • Requiresjava >= 11 (或jdk,或jre.)
  • %files:空部分(您可以省略它)

在您自己的包中,向Provides:添加一个依赖项,这个依赖关系现在是代理RPM和openjdk之间的共同点。

然后,您的包就可以在以下情况下安装:

  • OpenJDK 11已在存储库中安装或可用
  • OracleJava11RPM和您的java-11-oracle RPM在活动存储库中已经安装或可用。
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/511426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档