如何防止冲突的 repo 更新?

如何防止冲突的 repo 更新?

在 EC2 / Amazon Linux AMI(基于 Centos)上,我创建了/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

不!

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

答案1

第三方仓库的维护者应该以不干扰主仓库的方式命名他们的软件包,否则就会发生这样的冲突。像上述这样的冲突是不专业的,也是质量低劣的标志。

一些解决方法是:

YUM 优先级

您可以使用Yum 优先级通过分配给 .repo 文件中列出的存储库,配置每个存储库使用特定优先级 priority=N。一些 Yum 开发人员批评了 Yum 优先级。请阅读底部的“警告说明”。

排除包

你也可以从某些存储库中排除软件包。因此,将类似这样的内容添加到您的主存储库。替换您的包名称。

[main]
exclude=php* kernel* 

答案2

您可以使用 yum update-minimal

update-minimal 类似于升级,但会转到“最新”软件包匹配,以修复影响系统的问题

答案3

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

yum --exclude=nginx* update

相关内容