M1 Mac中Docker的Ubuntu 22.04容器如何安装gcc-multilib?
解决M1 Mac Ubuntu 22.04 Docker容器中gcc-multilib安装失败问题
问题场景
在M1 Mac的Ubuntu 22.04 Docker容器中执行以下命令安装gcc-multilib时:
apt-get update && apt-get install gcc-multilib
出现错误:
Package gcc-multilib is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
已尝试添加新PPAs,但问题未解决。
解决方案
由于M1 Mac为ARM架构,而gcc-multilib主要针对x86架构提供多库支持,Ubuntu 22.04的ARM镜像默认未包含该包的源,可通过以下步骤解决:
启用i386架构支持
先在容器中添加x86架构支持:dpkg --add-architecture i386 apt-get update重新安装gcc-multilib
执行安装命令:apt-get install gcc-multilib若仍失败,指定gcc版本安装
尝试安装特定版本的gcc多库包,例如:apt-get install gcc-11-multilib完成后可通过软链接将默认gcc指向该版本:
ln -s /usr/bin/gcc-11 /usr/bin/gcc ln -s /usr/bin/g++-11 /usr/bin/g++
说明
gcc-multilib在ARM架构的Ubuntu镜像中需显式启用i386架构才能获取对应包,因为该包初衷是为x86架构提供32位/64位交叉编译支持,ARM环境下需手动添加架构源才能安装。
内容的提问来源于stack exchange,提问作者鄭元傑
相关产品推荐
相关产品推荐

