依赖解不开?
yum/dnf 报 nothing provides 或版本冲突的原因与解法:缺仓库、本地裸装过包、架构混装、源与系统基线不匹配,给分诊与修复命令。
简短答案
依赖解不开通常是三类原因:要的依赖在所有仓库里都没有(缺源或基线不匹配);系统里裸装过本地 rpm,元数据与源里版本打架;架构混装。先分诊再动手,不要盲目 --force 硬装。
现象对照表
| 报错 | 分诊 |
|---|---|
nothing provides xxx needed by yyy |
缺依赖:先查哪个源没有 |
conflicts with installed zzz |
版本冲突:本地裸装过旧版,或源里只有新版 |
wrong arch / 无法安装 |
架构混装 |
| 反复缺的依赖各不相同 | 源与系统基线整体不匹配 |
排查步骤
# 查依赖由哪个包提供
yum provides '*/依赖库名.so*'
# 看现有版本与源里可用版本
rpm -q 包名
yum list 包名
# 本机架构
uname -m
处理办法
- 缺依赖:先
yum makecache确认源是新的;源里确实没有,就换与系统基线一致的源(基线对照 服务器 V11 条目); - 版本冲突:确认无人依赖后先
rpm -e卸掉本地裸装包,再走源安装; - 架构混装:统一架构,重装对应依赖;
- 彻底解不开且影响业务时走整基线恢复:介质取 银河麒麟镜像列表,按 Rufus 启动盘条目 重刷系统,再按业务清单重装。
操作小结
- 先分诊(缺 / 冲突 / 架构)再动手;
- 任何强制动作前先存一份
rpm -qa快照; - 本地裸装是冲突高发源,尽量全走源;
- 反复缺包就怀疑基线,别逐个补。