如何在X86_64 CentOS系统安装32位gcc编译器并解决版本冲突
解决libgcc多架构版本冲突问题
你遇到的是yum多架构包版本校验的限制——系统里已经装了更新版的x86_64架构libgcc,而默认yum拉取的i686版本更旧,所以触发了Transaction Check Error。要同时保留两个架构的包,核心是安装和当前x86_64版本完全一致的i686包,具体操作步骤如下:
第一步,先确认当前已安装的libgcc.x86_64完整版本号:
rpm -q libgcc.x86_64执行后会得到类似
libgcc-4.8.2-8.el6.x86_64的输出,这个完整版本号是后续操作的关键。第二步,用yum安装对应版本的i686包,把第一步拿到的版本号替换进去:
yum install libgcc-4.8.2-8.el6.i686 --setopt=protected_multilib=false这里的
--setopt=protected_multilib=false仍需保留,用来关闭yum的多架构版本保护机制,允许安装同版本的不同架构包。
如果第二步提示找不到对应版本的包,可能是你的yum源里没有该版本,这时候可以:
- 针对CentOS 6系统(已停止官方支持),尝试启用Vault归档仓库后再执行安装命令;
- 或者从CentOS镜像站的归档目录下载对应版本的
libgcc-xxx.i686.rpm包,手动用rpm安装:
这里的rpm -ivh --force libgcc-4.8.2-8.el6.i686.rpm--force是强制安装同版本的不同架构包,不会覆盖已有的x86_64版本。
最后验证安装结果:
rpm -q libgcc
如果输出同时显示x86_64和i686两个版本,就说明成功保留了双架构的libgcc。
内容的提问来源于stack exchange,提问作者Jason Yu




