'yum install java-1.8.0' 是某种别名吗?
Is 'yum install java-1.8.0' some sort of alias?
我启动了一个新的 AWS EC2 实例 (Amazon Linux AMI)。我可以像这样在机器上安装 Java 1.8.0:
sudo yum install java-1.8.0
我也可以使用这个命令安装:
sudo yum install java-1.8.0-openjdk
两种情况下都安装了相同的包和依赖项。当我执行以下操作时,我收到 "No matching Packages to list":
yum info java-1.8.0
当我执行以下操作时,"java-1.8.0" 没有出现在列表中,只有 "java-1.8.0-openjdk":
yum search java-1.8.0
我的相关问题是:
- 为什么 "sudo yum install java-1.8.0" 有效?它是 yum 存储库的别名吗?
- 如果这确实是一个别名,我怎么知道它存在?有没有办法搜索或列出别名?
如果 "yum install" 没有找到具有指定名称的包,它将查找提供具有该名称的功能的包。来自 yum 手册页的安装部分:
If the name doesn’t match a package, then package "provides" are searched (e.g. "_sqlite-cache.so()(64bit)") as are filelists (Eg. "/usr/bin/yum").
"java-1.8.0" 被列为 java-1.8.0-openjdk RPM 中的一项功能,这就是 "yum install java-1.8.0-openjdk" 安装它的原因。如果在 yum 中有其他软件包提供该功能,您可以轻松地获得其中一个。我不确定 yum 如何在提供相同功能的多个包之间进行选择,但如果应用程序的特定 flavor/version 对您来说很重要,我就不会依赖它。
如果您安装了 yum-utils,repoquery 命令可以向您显示有关包功能的信息(以及许多其他信息)。例如,repoquery --provides java-1.8.0-openjdk
将列出该软件包提供的所有功能。要搜索所有提供 java-1.8.0 功能的软件包,您可以使用 repoquery --whatprovides java-1.8.0
或仅使用 yum provides java-1.8.0
。注意在yum中,"whatprovides"和"provides"是一样的;两者都搜索提供指定功能的包。如果要获取指定包中的特性,需要使用repoquery。 (如果您已经安装或下载了要查询的包,rpm 命令也可以使用。)
我启动了一个新的 AWS EC2 实例 (Amazon Linux AMI)。我可以像这样在机器上安装 Java 1.8.0:
sudo yum install java-1.8.0
我也可以使用这个命令安装:
sudo yum install java-1.8.0-openjdk
两种情况下都安装了相同的包和依赖项。当我执行以下操作时,我收到 "No matching Packages to list":
yum info java-1.8.0
当我执行以下操作时,"java-1.8.0" 没有出现在列表中,只有 "java-1.8.0-openjdk":
yum search java-1.8.0
我的相关问题是:
- 为什么 "sudo yum install java-1.8.0" 有效?它是 yum 存储库的别名吗?
- 如果这确实是一个别名,我怎么知道它存在?有没有办法搜索或列出别名?
如果 "yum install" 没有找到具有指定名称的包,它将查找提供具有该名称的功能的包。来自 yum 手册页的安装部分:
If the name doesn’t match a package, then package "provides" are searched (e.g. "_sqlite-cache.so()(64bit)") as are filelists (Eg. "/usr/bin/yum").
"java-1.8.0" 被列为 java-1.8.0-openjdk RPM 中的一项功能,这就是 "yum install java-1.8.0-openjdk" 安装它的原因。如果在 yum 中有其他软件包提供该功能,您可以轻松地获得其中一个。我不确定 yum 如何在提供相同功能的多个包之间进行选择,但如果应用程序的特定 flavor/version 对您来说很重要,我就不会依赖它。
如果您安装了 yum-utils,repoquery 命令可以向您显示有关包功能的信息(以及许多其他信息)。例如,repoquery --provides java-1.8.0-openjdk
将列出该软件包提供的所有功能。要搜索所有提供 java-1.8.0 功能的软件包,您可以使用 repoquery --whatprovides java-1.8.0
或仅使用 yum provides java-1.8.0
。注意在yum中,"whatprovides"和"provides"是一样的;两者都搜索提供指定功能的包。如果要获取指定包中的特性,需要使用repoquery。 (如果您已经安装或下载了要查询的包,rpm 命令也可以使用。)