在 Linux(尤其是 CentOS / RHEL 系列)里,yum 冲突通常指 软件包依赖冲突或仓库冲突,常见原因和解释如下:
不同仓库提供了同一软件的不同版本。
例如:
nginx 1.20nginx 1.24yum 不知道该选哪个,就会报冲突。
表现:
Error: Package: nginx-1.24.x86_64 (epel)
Requires: libssl.so.10()(64bit)
启用了多个仓库(如:
它们互相“抢包”,导致依赖不一致。
系统中已有软件,和新装的软件“打架”。
例如:
file /usr/bin/xxx from install of A conflicts with file from package B
系统混装了 32 位和 64 位包。
例如:
multilib versions: xxx.i686 and xxx.x86_64
A 依赖 B 的新版本
B 又依赖 A 的旧版本
→ yum 无法解决
异常情况(断电、强杀 yum)导致:
rpmdb: PANIC
yum install xxx
重点看:
conflicts withrequiresmultilibyum repolist
yum list xxx --showduplicates
rpm -qa | grep xxx
yum deplist xxx
yum install nginx --enablerepo=epel
yum install xxx --exclude=yyy
yum remove yyy
yum clean all
yum makecache
rm -f /var/lib/rpm/__db.*
rpm --rebuilddb
yum historyyum history
yum history undo <ID>
yum 冲突本质是:依赖关系无法同时满足,或仓库/版本互相打架。
如果你愿意,可以把 完整的 yum 报错信息贴出来,我可以直接帮你定位是哪一种冲突并给出具体解决命令。