自己的 yum 存储库 – Oracle JDK 的奇怪软件包命名

自己的 yum 存储库 – Oracle JDK 的奇怪软件包命名

我刚刚在我们的其中一台服务器上创建了一个自定义 YUM 存储库createrepo,并让其他服务器知道它。存储库中有三个 RPM:

[foo@one repository]$ ls
jdk-7u4-linux-x64.rpm  jdk-7u79-linux-x64.rpm  jdk-8u65-linux-x64.rpm  repodata

现在,当我搜索可用的包时,我得到以下输出:

[foo@two ~]$ sudo yum list available jdk*
Available Packages
jdk.x86_64            2000:1.7.0_79-fcs     
jdk1.8.0_65.x86_64    2000:1.8.0_65-fcs 

有些服务器应该已经有 Java 8,而有些仍然需要更新并运行 Java 7。为了顺利升级,我将配置 Ansible 以根据其正在通信的节点安装特定的 Java 包。

当然我可以说jdk在 Java 7 服务器上安装,jdk1.8.0_65在 Java 8 服务器上安装,但这似乎有点冒险。

现在我的问题是:为什么 Java 8 rpm 中包含该版本,而 Java 7 中却省略了该版本?有没有办法在软件包名称中明确显示版本 7?

答案1

这并不奇怪,这是 Oracle 选择名称的方式。

对于 1.7 版本,jdk 包名称为“jdk”,它们有epoch 标签设置为 2000 和各种版本 (1.7.0_79-fcs、1.7.0_25-fcs)。

这样,您就可以更新软件包并通过执行“yum install jdk”来安装该软件包

从 1.8 开始,他们决定为每个版本使用不同的软件包名称。因此,软件包名称现在是“jdk1.8.0_65”,纪元是“2000”,版本是“1.8.0_65-fcs”。

这样你就不能再安装“标准”包(jdk),你需要知道它的名字:“yum install jdk1.8.0_65”。优点是你可以安装多个 jdk 并使用你想要的那个。

相关内容