当在 .repo 文件中给出特定版本时,yum 如何知道要查看最新版本?

How does yum know to look at the newest release when given a specific version in the .repo file?

我正在查看关于在 EC2 实例上安装 Mongo 的 instructions。我将以下内容添加到 /etc/yum.repos.d/mongodb-org-4.0.repo

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

一切都按预期进行。但是,我能够 运行 sudo yum install mongodb-org。我从来没有说过 sudo yum install mongodb-org-4.0 喜欢 repo 文件,那么它是如何设置的,如果我 运行 install mongodb-org 它链接到 mongodb-org-4.0.repo 文件?例如,我尝试了 运行ning sudo yum install mongodb-or 但它什么也没做。一定有一些链接,但我不知道它发生在哪里。

[mongodb-org-4.0] 只是 repo 的名称,此 repo 中可用的包名称与 repo 的名称无关。

如果您转到 https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/ 并进入其 RPMS 子文件夹,您将看到可以从此存储库安装的实际 RPM 包,例如

mongodb-org-4.0.0-1.amzn1.x86_64.rpm

这样一个包名分成了很多部分。这里重要的是包名:

mongodb-org 

是版本号

4.0.0

您可以让 yum 通过包名 yum install mongodb-org 安装该包,或者要获得特定版本,您可以执行 yum install mongodb-4.0.0 。 rpm 文件名还有其他组成部分,例如第一个 -1 这是 RPM 版本号,标签 amaz1 和体系结构 x86_64

使用yum install时,安装时至少需要提供完整包名或完整包名+完整版本。只是部分 yum install mongodb 是行不通的。

另请注意,包名称的一部分由打包者决定,可以制作一个还包含版本号的包,例如 mongodb-4.0 ,版本号为 4.0 .0。所以完整的文件名可能是 mongodb-org-4.0-4.0.0-1.amzn1.x86_64.rpm ,在这种情况下,您需要使用 yum install mongodb-org-4.0 或 mongodb-org-4.0-4.0.0