![java-headless 的 Yum 依赖项和元数据](https://linux22.com/image/784868/java-headless%20%E7%9A%84%20Yum%20%E4%BE%9D%E8%B5%96%E9%A1%B9%E5%92%8C%E5%85%83%E6%95%B0%E6%8D%AE.png)
我正在尝试在 RockyLinux 9 服务器上安装 Java 8 和 Tomcat 9。
安装 tomcat(来自 EPEL)需要java-headless >= 1:1.8.0
解析为java-11-openjdk-headless
。因此 Java 11 作为依赖项安装...即使我已经安装了java-1.8.0-openjdk-headless
,它应该“逻辑上”提供java-headless >= 1:1.8.0
。
$ yum deplist tomcat
Last metadata expiration check: 1:37:02 ago on Tue 28 Mar 2023 04:13:15 PM CEST.
package: tomcat-1:9.0.65-2.el9.noarch
[...]
dependency: java-headless >= 1:1.8.0
provider: java-11-openjdk-headless-1:11.0.18.0.10-2.el9_1.x86_64
[...]
我猜java-1.8.0-openjdk-headless
缺少Provides: java-headless
元数据。它不在yum whatprovides java-headless
输出中。但我不确定如何检查 的完整元数据java-1.8.0-openjdk-headless
。
有没有办法:
- 强制 yum 忽略
java-headless
依赖关系? - 标记
java-1.8.0-openjdk-headless
为提供此依赖项?
或任何其他可以让我避免的选择:
- 安装 Java 11 却毫无用处
- 强制 Java 版本通过
alternatives
或通过 tomcat 配置?
编辑:Java 8 和 11 都可以无冲突地安装。我只是想避免安装 Java 11。Tomcat 9 与 Java 8 兼容,在从 中选择 Java 8 后运行良好update-alternatives
。
答案1
在 RockyLinux 9 服务器上安装 Tomcat 9 时出现版本依赖冲突。
解决该问题的最佳方法是单独安装 Java 8,但由于您已经拥有它,因此您可以Java 8 Development Kit
单独安装(JDK),然后将JAVA_HOME
环境变量设置为指向 Java 8 安装目录。
Java 8 JDK
因此,首先从 Oracle 网站或通过 OpenJDK 存储库下载,然后在文件中或 Tomcat 启动脚本中设置JAVA_HOME
环境变量(应该是/etc/profile
/usr/share/tomcat/bin/catalina.sh)
export JAVA_HOME=/path/to/java8