Centos 7 OpenJDK 升级困惑

Centos 7 OpenJDK 升级困惑

我想就我遇到的一个问题征求别人的意见,但却无济于事。

我们的环境中有一个较旧的 Linux 服务器,我想将我们的 openjdk 修补到最新版本,但似乎无法理解这个过程。

我们在 Centos 7 上运行 openjdk 11.0.14,希望升级到 11.0.15 并最终超越,一旦我们可以测试我们的应用程序在每次重大跳跃中都是稳定的。

yum list available java* 仅显示到 11.0.14 然后直接跳转到 17.0.2 然而我只想修补到最高的 v11。

Java -version 产生:openjdk 版本“11.0.14.1”2022-02-08 LTS OpenJDK 运行时环境 18.9(构建 11.0.14.1+1-LTS)OpenJDK 64 位服务器 VM 18.9(构建 11.0.14.1+1-LTS,混合模式,共享)

最初我考虑进行备用安装,以便我可以根据需要在版本之间切换,因此我从 oracle 下载了 11.0.15 并将其提取到当前安装位置并运行 alternatives — install 命令但它失败并显示消息:Java 的主链接必须是 usr/bin/Java。

当我运行“which Java”时,我得到了 bin/Java,但是符号链接位于 usr/lib/Java 下。

我不确定如何继续,我是否应该在继续之前删除以前的版本?我也不确定我是否使用正确的 openjdk 版本进行升级以避免出现任何问题。我是从 Oracle 下载还是使用 opendjk 档案?

答案1

Oracle Java 需要付费许可证,并且它们是检查合规性。Server Fault 不是讨论许可条款的地方,但您应该知道自己将要面临什么。

CentOS 或 Enterprise Linux 软件包是 Red Hat 的 OpenJDK 版本。优点是使用与发行版中其他内容相同的安装方法,来自为您带来 RHEL 的人。缺点是它可能落后于上游,因为维护人员需要一些时间才能达到定期更新,为 RHEL 和 CentOS 完成构建。

阅读 Java 11.0.15 的发行说明,了解您到底错过了什么。可能它并不重要。当它作为常规软件修补的一部分发生时,您可能能够进行小更新,并进行简短的测试。

如果您需要 rpm 包以外的替代版本,您不必离开 Red Hat。他们的OpenJDK 安装选项包含 tar 存档。但是,不要将 tar 存档安装到与 rpm 相同的位置。将非 rpm 软件包提取到不会影响系统软件包的某个位置(例如 /opt)。

Java 8、11 和 17 是长期支持版本。参考支持路线图通过生命终结日期。目前您可以选择其中任何一种,它们都已打包在 CentOS 和上游。留出一些时间来准备升级到 17 或 21。

相关内容