装包报依赖冲突?
麒麟装 rpm / yum 包报文件冲突或依赖冲突:多为混用仓库、手工装过同名文件。给出定位冲突包、按来源清理重装的路径。
简短答案
冲突分两类:文件级(两个包都提供同一文件)与依赖级(依赖版本对不上)。处理前先定位”是谁和谁冲突”,不要盲目 --force。
| 现象 | 原因 | 处理 |
|---|---|---|
file X from package A conflicts with file from package B |
两包都提供同路径文件 | 卸一方,再装另一方 |
package A requires B >= v1, but v0 installed |
依赖版本不满足 | 升级依赖或换源 |
installed: A 后装 B 报 A is a newer version |
版本倒挂 | 对齐源版本 |
怎么排查
# 1. 看冲突文件属于谁
rpm -qf /usr/lib64/somefile.so
# 2. 看已装版本
rpm -q A B
# 3. 依赖树(看依赖要求)
rpm -q --requires A
# 4. 卸手工装 / 旧版包(按依赖顺序)
rpm -e A
# 5. 重装目标包
yum install B
- 先定位再动手:
rpm -qf找出冲突文件来源,确认是手工装的旧版本还是混用仓库。 - 不要
rpm --force直接覆盖,先卸载旧包再装新包。 - 源与系统 SP 版本对齐:参考 麒麟 V11 服务器版 条目,桌面版同理。
- 内网 / 信创环境混用仓库是常见根因,按行业规范统一源。
操作小结
- 先
rpm -qf定位冲突文件。 - 卸旧包再装新包,避免
--force。 - 对齐仓库版本与系统 SP。