Centos7如何升级GCC

 更新时间:2026年03月28日 10:28:24   作者:緣起緣落  
这篇文章主要介绍了Centos7如何升级GCC的实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、环境准备

1. 检查当前 GCC 版本

gcc --version

2. 清理系统环境

sudo yum clean all
sudo yum update -y

二、安装 SCL 仓库

此处我们使用scl来切换gcc版本

SCL(Software Collections)提供高版本软件包,且与系统默认工具链隔离。

sudo yum install -y centos-release-scl

三、安装 GCC 9.3

1. 安装 devtoolset-9

sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++

 如果报错如下,是因为CentOS 7 的SCL仓库已停止维护,默认的镜像服务器已失效,导致无法通过yum安装

解决方案 (切换为阿里云镜像环境)

1、查看自己的源环境

主要查看 base是否为阿里云环境 以及 sclo rh 是否为阿里云环境(以下是配图)

yum repolist

2、切换配置信息

# 使用阿里云镜像
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

修改所有仓库配置为阿里云地址:
sudo sed -i 's|vault.centos.org|mirrors.aliyun.com/centos|g' /etc/yum.repos.d/*.repo

3、验证scl源 (如果和我的不一致可能回导致404 小伙伴可直接复制粘贴)

sudo vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/centos/RPM-GPG-KEY-CentOS-SIG-SCLo

4、重新构建

切记一定要多  

sudo yum clean all # 清除
sudo yum update -y # 更新

sudo yum makecache #构建
sudo yum clean all
sudo yum makecache

证明没有任何问题

5、手动下载安装文件

理论上各位不需要执行这个步骤 重新执行  sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++  命令即可 如果出现像我一样 可依照我如此下载将文件名称换成自己对于的即可

注意:我当时不知道为什么没有下载下下来 在执行命令时显示有五个文件404不找到  这是我手动配置的地址可以直接下载下来

wget http://vault.centos.org/centos/7/sclo/x86_64/rh/Packages/d/devtoolset-9-runtime-9.1-0.el7.x86_64.rpm
wget http://vault.centos.org/centos/7/sclo/x86_64/rh/Packages/d/devtoolset-9-binutils-2.32-16.el7.x86_64.rpm
wget http://vault.centos.org/centos/7/sclo/x86_64/rh/Packages/d/devtoolset-9-gcc-9.3.1-2.2.el7.x86_64.rpm
wget http://vault.centos.org/centos/7/sclo/x86_64/rh/Packages/d/devtoolset-9-gcc-c++-9.3.1-2.2.el7.x86_64.rpm
wget http://vault.centos.org/centos/7/sclo/x86_64/rh/Packages/d/devtoolset-9-libstdc++-devel-9.3.1-2.2.el7.x86_64.rpm

6、安装环境

sudo yum install -y policycoreutils-python
sudo yum install -y scl-utils

7、编译安装文件

注意:如果你有其他文件 也仿照此格式添加上

sudo rpm -Uvh --force --nodeps devtoolset-9-runtime-9.1-0.el7.x86_64.rpm \
           devtoolset-9-binutils-2.32-16.el7.x86_64.rpm \
           devtoolset-9-gcc-9.3.1-2.2.el7.x86_64.rpm \
           devtoolset-9-gcc-c++-9.3.1-2.2.el7.x86_64.rpm \
           devtoolset-9-libstdc++-devel-9.3.1-2.2.el7.x86_64.rpm
8、验证 GCC 是否安装成功
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ 

2. 激活 GCC 9.3 环境

scl enable devtoolset-9 bash

# 验证版本
gcc --version

切换成功!

四、永久切换为GCC 9.3

正常上述步骤后你的机器已经拥有了 9.3的环境,但是因为  scl enable devtoolset-9 bash  只是当前会话有效 当你新开会话之后 gcc 版本就会失效(小伙伴们可以打开一个新的窗口验证一下),所以建议设置成永久使用

1. 修改用户环境变量

# 写入配置信息
echo 'source /opt/rh/devtoolset-9/enable #This is  gcc version' >> ~/.bashrc

# 验证是否添加成功
vim ~/.bashrc

# 刷新配置
source ~/.bashrc

2. 验证生效

打开新客户端 验证 gcc 版本是否生效

亲测可用!

  • 注:这里如果不想启动 只需要把 写入的数据删除掉,打开新窗口就回变回原来的版本
  • 注:大家安装时 一定要注意自己的环境,目前我安装redis用到了 9.X的GCC环境就不做其他演示,个人理解如果想要升级至 GCC 11 也是此流程,文件不同罢了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Centos rsync文件同步配置步骤分享

    Centos rsync文件同步配置步骤分享

    rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync
    2012-09-09
  • Ubuntu linux 安装 PHP5.3.0的命令

    Ubuntu linux 安装 PHP5.3.0的命令

    5.3.0 的正式版已经发布有段时间了,看到脚本之家上面有个windows下的安装php5.3的教程,所以想起写一个关于linux的PHP5.3的安装教程。
    2009-09-09
  • Linux在线解压jar包的实现方式

    Linux在线解压jar包的实现方式

    这篇文章主要介绍了Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • linux下日志定时轮询的流程详解

    linux下日志定时轮询的流程详解

    这篇文章主要给大家介绍了关于在linux下日志定时轮询流程的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • ubuntu20.04不显示wifi图标的问题及解决

    ubuntu20.04不显示wifi图标的问题及解决

    文章主要介绍了在Ubuntu 20.04系统中安装WiFi网卡驱动的方法,包括通过软件和更新、更换软件源、激活BCM无线网卡等步骤
    2026-03-03
  • 详解Linux环境变量配置全攻略

    详解Linux环境变量配置全攻略

    这篇文章主要介绍了Linux环境变量配置全攻略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • ubuntu安装显卡驱动和cuda教程

    ubuntu安装显卡驱动和cuda教程

    这篇文章主要介绍了ubuntu安装显卡驱动和cuda教程,文中附有详细的图文安装步骤以及安装配置代码,跟着本文来进行操作,有需要的朋友可以参考下
    2021-09-09
  • 解决SSH连接超时的2个配置方法

    解决SSH连接超时的2个配置方法

    用SSH客户端连接linux服务器时,经常会出现与服务器会话连接中断现象,照成这个问题的原因便是SSH服务有自己独特的会话连接机制。
    2014-04-04
  • 阿里云OSS访问权限配置(RAM权限控制)实现

    阿里云OSS访问权限配置(RAM权限控制)实现

    这篇文章主要介绍了阿里云OSS访问权限配置(RAM权限控制)实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Linux中的线程安全与线程同步详解

    Linux中的线程安全与线程同步详解

    这篇文章主要介绍了Linux中的线程安全与线程同步,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04

最新评论