为何amd64系统可安装armhf包却无法安装arm64包?
为什么amd64系统安装gcc-6-base:arm64失败,但armhf能成功?
嘿,这个问题的核心其实和Debian/Ubuntu生态的多架构包支持机制有关,我来给你理清楚:
首先,你的系统是amd64(也就是x86_64)架构,dpkg默认只会允许安装和系统原生架构匹配的软件包。要安装其他架构的包,必须先告诉dpkg“我要支持这个外来架构”。
那为什么gcc-6-base:armhf能顺利安装?大概率是你的系统已经预先启用了armhf架构支持——很多Ubuntu/Debian的amd64系统,为了兼容32位ARM程序(比如嵌入式开发工具、部分老旧ARM应用),可能默认就添加了armhf作为外来架构,或者之前有人执行过sudo dpkg --add-architecture armhf这条命令。
而你尝试安装的gcc-6-base:arm64属于64位ARM(AArch64)架构的包,你的系统并没有启用arm64的外来架构支持,所以dpkg会直接抛出package architecture (arm64) does not match system (amd64)的错误,拒绝安装。
验证方法
你可以执行这条命令查看系统当前支持的外来架构:
dpkg --print-foreign-architectures
如果输出里只有armhf,没有arm64,就完全符合上面的推测。
如果需要安装arm64包的解决办法
要是你确实需要安装arm64架构的gcc-6-base,只需要先启用arm64架构支持,再更新apt缓存即可:
sudo dpkg --add-architecture arm64 sudo apt update sudo apt-get install gcc-6-base:arm64
内容的提问来源于stack exchange,提问作者user541686




