我正在使用多个第三方 RPM 存储库。由于这些存储库包含名称冲突的软件包,因此我正在尝试yum 插件优先级以理清混乱。
当我运行时yum check-update
,我收到一条通知,提示“由于存储库优先级保护,N 个包被排除”:
[root@host ~]# yum check-update
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
3941 packages excluded due to repository priority protections
[root@host ~]#
3941 个排除的包?天哪,这比我想象的要多得多。有没有一种快速的方法可以让我检查哪些包被排除在考虑范围之外,以便我可以仔细检查 yum 正在做什么?
我试过了--disableplugin=priorities
,但它没有显示排除的包。
[root@host ~]# yum check-update --disableplugin=priorities
Loaded plugins: changelog, downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile
[root@host ~]#
答案1
这比那更容易:)
可以使用 yum debuglevel 显示排除项。它们可以从 debuglevel 3 开始显示(调试级别范围从 0 到 10)
yum update -d3
给你列表。
答案2
我不确定是否有一种快速或内置的方法来列出它排除的内容,但如果您不介意深入研究一些代码,您可以找到您需要的内容。
该插件应位于:
/usr/lib/yum-plugins/priorities.py
功能:
config_hook(conduit)
当到达软件包排除槽时将由 yum 执行。
代码相对简单,只需在正确的位置插入打印语句即可了解更多信息。更具体地说,每当你看到
conduit.delPackage(po)
这意味着要排除某个包。只需插入一个
print po
在上面这一行中获取包的字符串输出。