You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在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

火山引擎 最新活动