选错架构的包?
麒麟装包报架构不匹配的原因:机器实际架构与包的 target 不一致(x86_64 与 arm64 混淆),给 30 秒判断方法与正确选包规则。
简短答案
先花 30 秒确认机器实际架构(uname -m),再核对拿的包的目标架构。机器是什么架构就装什么架构的包,跨架构不兼容。多数”装不上”不是麒麟的错,是包下错了。
现象对照表
| 现象 | 说明 |
|---|---|
cannot be installed 提及架构 |
包架构与机器不符 |
| x86 包装进 ARM 机报错 | 方向反了,应取 ARM 包 |
| 同机器不同包架构混装 | 仓库未限定架构过滤 |
| 源里只有另一种架构 | 该仓库没为你的架构发布 |
排查步骤
# 机器架构(输出 x86_64 或 aarch64 等)
uname -m
# 已装包的目标架构
rpm -qf /usr/bin/某二进制 | head
# 本地 rpm 包的目标架构
rpm -qp 包名.rpm | awk '{print $3}'
# dnf 源里该包可用架构
yum list 包名 2>/dev/null | grep 包名
处理办法
- 包选错:按机器架构重取;基线参考 桌面 V11 条目 或 服务器 V11 条目;
- 仓库混装:给仓库加架构过滤,离线仓库按架构分子目录;
- 源里没有你的架构包:换有对应架构发布的源,或走厂商渠道拿;
- 整环境重建:介质取 银河麒麟镜像列表,按 Rufus 启动盘条目 制作 U 盘。
操作小结
- 装包前先看
uname -m; - 源内包核对目标架构;
- 仓库按架构分目录、加过滤;
- 错包先
rpm -e再重装对应架构版本。