[Centos系统] CentOS 升级 gcc 版本

632 0
Honkers 2025-12-22 21:09:06 来自手机 | 显示全部楼层 |阅读模式

CentOS 升级 gcc 版本

1. 安装步骤

CentOS7 默认的 gcc 版本是4.8,有时候需要更高版本,这里介绍一下如何将 gcc 版本升级到 8.3.1

  1. 安装 centos-release-scl

    1. yum install centos-release-scl
    复制代码
  2. 安装devtoolset,注意,如果想安装 9.* 版本的,就改成 devtoolset-9-gcc,以此类推

    1. yum install devtoolset-8-gcc*
    复制代码
  3. 激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本

    1. scl enable devtoolset-8 bash
    复制代码
  4. 查看 gcc 版本

    1. gcc -v
    复制代码

2. FAQ

2.1 在执行yum install devtoolset-8-gcc*的时候报错,说找不到对应的包

解决方案:

安装完成后在 /etc/yum.repos.d 目录下会出现 CentOS-SCLo-scl.repo 和 CentOS-SCLo-scl-rh.repo 两个文件,安装后源默认启用,问题就在这两个文件上。

  1. 修改CentOS-SCLo-scl.repo文件

    1. vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
    复制代码
  2. 修改此部分的 baseurl

    1. [centos-sclo-sclo]
    2. name=CentOS-7 - SCLo sclo
    3. baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
    4. # mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
    5. gpgcheck=0
    6. enabled=1
    7. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
    复制代码
  3. 修改CentOS-SCLo-scl-rh.repo

    1. vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
    复制代码
  4. 修改此部分的 baseurl

    1. [centos-sclo-rh]
    2. name=CentOS-7 - SCLo rh
    3. baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
    4. # mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
    5. gpgcheck=0
    6. enabled=1
    7. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
    复制代码
  5. 刷新缓存

    1. yum repolist
    2. yum clean all
    3. yum makecache
    复制代码

2.2 安装成功后重启再次执行gcc -v发现还是旧的版本

这条scl enable devtoolset-8 bash激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本,要想随意切换可按如下操作。

首先,安装的devtoolset是在 /opt/rh 目录下的

每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行:

  1. source ./enable
复制代码

所以想要切换某个版本只需要执行:

  1. source /opt/rh/devtoolset-8/enable
复制代码

解决方案:

  1. 方案一:可以将对应版本的切换命令写个shell文件放在配了环境变量的目录下,需要时随时切换,或者开机自启

  2. 方案二:直接替换旧的gcc

    旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g++替换为刚安装的新版本gcc软连接,免得每次enable

    1. mv /usr/bin/gcc /usr/bin/gcc-4.8.5
    2. ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
    3. mv /usr/bin/g++ /usr/bin/g++-4.8.5
    4. ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
    5. gcc --version
    6. g++ --version
    复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行