CentOS 8.1配置多个yum源时无法获取libvirt最新版本问题咨询
问题原因
该问题由CentOS 8引入的DNF模块化机制导致,该机制的优先级高于普通包版本比对规则:
- AppStream仓库中的libvirt属于模块化软件包,系统默认启用了6.0版本的libvirt模块流,DNF会强制锁定该模块流的版本范围,只会匹配同模块流下的包,因此其他仓库中更高版本的非模块化libvirt包会被直接过滤。
- 当你禁用AppStream仓库后,模块流的限制也随之消失,DNF就可以正常扫描到centos-advanced-virtualization仓库中的更高版本包。
解决方法(无需禁用AppStream仓库)
你只需要调整模块配置解除版本锁定即可:
- 安装必要的DNF插件(如需配置仓库优先级可安装)
dnf install -y dnf-plugins-core - 重置libvirt的现有模块流配置
dnf module reset libvirt - 禁用默认的libvirt模块流,解除版本锁定
dnf module disable libvirt - 重建yum缓存
yum clean all && yum makecache - 再次查看可安装的libvirt版本,即可同时看到两个仓库的所有版本,默认会选择最高版本安装
yum list libvirt --showduplicates
如果需要长期优先从centos-advanced-virtualization仓库拉取相关包,可在virt-2.repo的配置段中添加优先级配置(数字越小优先级越高,默认优先级为99):
[centos-advanced-virtualization] name=CentOS Linux 8-stream - Advanced Virtualization baseurl=http://mirrors.ustc.edu.cn/centos/8-stream/virt/$basearch/advancedvirt-common/ gpgcheck=0 enabled=1 priority=10
内容的提问来源于stack exchange,提问作者freshMan
相关产品推荐
相关产品推荐

