Yum install 无法识别 Oracle Linux 7.9 上特定版本的 JDK 包

Yum install 无法识别 Oracle Linux 7.9 上特定版本的 JDK 包

我正在尝试使用 yum install 安装 jdk 1.8.0_311。但是,我在尝试安装时收到一条错误消息,指出“无事可做”。

我用过

yum --showduplicates list jdk*

检查包裹是否在那里

jdk-20-headful.aarch64             2000:20.0.1-9.el7                ol7_oci_included
jdk-20-headless.aarch64            2000:20-36.el7                   ol7_oci_included
jdk-20-headless.aarch64            2000:20.0.1-9.el7                ol7_oci_included
jdk1.8.aarch64                     2000:1.8.0_301-fcs               ol7_oci_included
jdk1.8.aarch64                     2000:1.8.0_311-fcs               ol7_oci_included
jdk1.8.aarch64                     2000:1.8.0_331-fcs               ol7_oci_included
jdk1.8.aarch64                     2000:1.8.0_341-fcs               ol7_oci_included
jdk1.8.aarch64                     2000:1.8.0_351-fcs               ol7_oci_included

然后我尝试运行

yum install jdk1.8.aarch64-2000:1.8.0_311-fcs

我收到错误“无事可做”

yum install jdk1.8.aarch64-2000:1.8.0_311-fcs
Loaded plugins: langpacks, ulninfo
No package jdk1.8.aarch64-2000:1.8.0_311-fcs available.
Error: Nothing to do

根据文档,这是安装它的正确方法,但它无法识别该包。如果我不指定版本,则默认为我无法使用的较新版本(351)。如有任何帮助,我们将不胜感激,谢谢。

答案1

安装特定版本的包的语法是:

yum install <package_name>-<version>

<package_name> 不应包含体系结构名称(在您的情况下为 .aarch64)。

尝试运行:

yum install jdk1.8-2000:1.8.0_311-fcs

如果您想指定架构,请运行如下命令:

yum install jdk1.8-2000:1.8.0_311-fcs.aarch64

答案2

不幸的是,yum 对于“yum install”、“yum擦除”和“yum list displayed”的反应并不真正一致:对于安装,您可以使用“缩写”pkg名称“pkgname-pkgversion”,例如:

yum install jdk1.8-1.8.0_311-fcs

对于“yum list install”和“yum擦除”,您必须使用“完整包名称”(如前面的解决方案中提到的)或使用glob(无正则表达式),例如:

> yum list installed jdk*
Installed Packages
jdk1.8.x86_64                              2000:1.8.0_311-fcs
> yum erase jdk1.8-2000:1.8.0_311-fcs*
> yum erase jdk1.8-*1.8.0_311-fcs*
/* That's similar to abbreviated installation syntax ("pkgname-*pkgversion*"), avoiding "2000" + <architecture> */

“architecture”作为软件包名称的一部分列在“yum list displayed ...”的输出中(参见上文:“jdk1.8.1”)。x86_64”),但在“现实世界”(对于用法“yum擦除”和“yum列表已安装”)它位于“完整包名称”中的版本之后:

jdk1.8-2000:1.8.0_311-fcs.x86_64

不知道为什么它是这样实现的,或者为什么你可以用“yum install”省略“2000”......

相关内容