示例场景:安装 Nginx
我正在安装 Nginx。为了获取最新的 repo,我从 Nginx 网站下载 RPM。如下所示:
rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
由于我需要安装 PHP-FPM,因此我还从其他地方下载了几个 repos,如下所示:
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
现在第一个 repo 也包含 Nginx。因此当我输入:
yum install nginx
YUM 将使用哪个 repo 来安装 Nginx?
谢谢!
答案1
如果两个存储库中的软件包名称完全相同,yum 将按字母顺序解析。
因此它将从自然顺序中第一个 repo 下载 rpm。通常根据我的经验,我总是安装 yum 优先级插件,这将帮助我根据用户定义的标准对 repos 进行优先级排序。您可以在此处获取更多信息: http://wiki.centos.org/PackageManagement/Yum/Priorities
编辑:
我接受的答案并不正确。如果两个存储库中的软件包名称完全相同,yum 将不会按字母顺序解析。迈克尔是对的。这是 redhat 关于此场景的官方答案:
因此在这种情况下,yum 将简单地查询存储库,无论哪个存储库获得第一个获取查询,都会回复并从中获取包及其依赖项。不会有任何冲突。下载的包本质上是随机的。
答案2
默认情况下,您将获得任何可用的最高版本的软件包已启用存储库。存储库名称完全不相关。
当然,各种 yum 插件(例如 priority 和 versionlock)可以改变您可用的软件包或软件包版本。