我想为 yum 启用优先级插件,名为yum-plugin-priorities
。
之后我启用并安装该插件,我发现该插件可以运行,但行为很奇怪。
即使我知道包存在于我的一个存储库中,yum 也说包不存在。
yum install ansible-2.2.0.0-1.el7
Loaded plugins: priorities
2158 packages excluded due to repository priority protections
No package ansible-2.2.0.0-1.el7 available.
Error: Nothing to do
经过搜索我找到了解决方法
有 2 个修复程序可以解决我的问题,但我认为我不需要它们。
安装包的第一种方法
yum install ansible-2.2.0.0-1.el7 --disableplugin=priorities
我不想这样做,因为那也会给以后带来问题。
安装包的第二种方法
提高存储库优先级/etc/yum.repos/xxx.repo
$ sed -n -e "/^\[/h; /priority *=/{ G; s/\n/ /; s/ity=/ity = /; p }" /etc/yum.repos.d/*.repo | sort -k3n # Shows priorities of repos
priority = 11 [rhel7-server]
priority = 12 [rhel7-extras]
priority = 13 [rhel7-optional]
priority = 20 [puppetlabs-deps]
priority = 21 [puppetlabs-products]
priority = 50 [foo-rpms] # My spesific ansible version is here and If increase priority to 10 it install my package
priority = 99 [cmd]
priority = 99 [epel]
priority = 99 [bar-rpms]
软件包使用说明本身
如果某个包位于多个存储库中,则会从优先级最高的存储库中安装该包。
问题
我理解通过该插件,如果我说yum install ansible
我可以从具有最高优先级的存储库中获取该软件包的较低版本,但是为什么不允许安装该软件包的特定版本并说该软件包存在时不可用?
另一个版本信息:
RHEL 版本
Red Hat Enterprise Linux Server release 7.4 (Maipo)
Yum 版本:
3.4.3
Installed: rpm-4.11.3-25.el7.x86_64 at 2017-11-09 09:40
Installed: yum-3.4.3-154.el7.noarch at 2017-11-09 09:40
插件版本
$ yum info yum-plugin-priorities
Loaded plugins: priorities
2158 packages excluded due to repository priority protections
Installed Packages
Name : yum-plugin-priorities
Arch : noarch
Version : 1.1.31
Release : 46.el7_5
另一个显示我的包被排除的调试信息:
yum install -d3 ansible-2.2.0.0-1.el7
--> ansible-2.2.0.0-1.el7.noarch from foo-rpms excluded (priority)