如何防止从冲突的回购更新?

在EC2 / Amazon Linux AMI(基于CentOS)上,我创build了/etc/yum.repos.d/nginx.repo

 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1 

然后我成功安装了nginx 1.4.2:

 sudo yum --disablerepo="*" --enablerepo="nginx" install nginx 

现在,当我运行sudo yum update ,我得到:

 ---> Package nginx.x86_64 0:1.4.2-1.el6.ngx will be updated ---> Package nginx.x86_64 1:1.2.9-1.11.amzn1 will be an update 

没有!

如何永久阻止更新? (这实际上是降级)

第三方软件仓库的维护人员应该以不干扰主仓库的方式命名软件包,否则会发生类似的冲突。 像上述这样的冲突是不专业和质量差的迹象。

一些解决方法是:

YUM优先

您可以使用Yum Priorities,通过将priority=N分配给.repo文件中列出的存储库,将每个repoconfiguration为使用某个优先priority=N 。 一些百胜餐饮开发商批评百胜优先。 阅读底部的“注意事项”。

不包括软件包

您也可以从特定存储库中排除软件包 。 所以,添加这样的东西到你的主要回购。 replace你的软件包名称。

 [main] exclude=php* kernel* 

您可以使用以下命令指定不要更新的软件包:

yum --exclude=nginx* update

你可以使用yum update-minimal

update-minimal像升级一样工作,但进入“最新”软件包匹配,修复影响系统的问题