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 也是此流程,文件不同罢了。

总结

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

相关文章

  • Linux环境ActiveMQ部署方法详解

    Linux环境ActiveMQ部署方法详解

    这篇文章主要介绍了Linux环境ActiveMQ部署方法,较为详细的分析了Linux环境下ActiveMQ的部署方法,并附带说明了linux安装jdk的相关操作步骤,需要的朋友可以参考下
    2019-05-05
  • linux下获取文件的创建时间与实战教程

    linux下获取文件的创建时间与实战教程

    这篇文章主要给大家介绍了关于linux下获取文件的创建时间与实战的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Linux下gdb调试打印数组元素以及说明

    Linux下gdb调试打印数组元素以及说明

    这篇文章主要介绍了Linux下gdb调试打印数组元素以及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Linux环境下监控和检查内存使用的几种方法

    Linux环境下监控和检查内存使用的几种方法

    内存管理是保持 Linux 系统平稳运行的重要组成部分,无论您是系统管理员、开发者,学会检查 Linux 内存使用情况是确保系统稳定性和性能的关键步骤,本文将介绍在 Linux 环境下监控和检查内存使用的几种方法,需要的朋友可以参考下
    2025-12-12
  • Linux使用ncdu查看磁盘使用的操作详解

    Linux使用ncdu查看磁盘使用的操作详解

    ncdu (NCurses Disk Usage) 是一个用于 Linux 和类 unix 系统的磁盘实用程序,它提供了一种比 du 等传统命令更具交互性和用户友好性的方式来查看和分析磁盘空间使用情况,本文给大家介绍了Linux使用ncdu查看磁盘使用的操作,需要的朋友可以参考下
    2025-02-02
  • 关于Apache默认编码错误 导致网站乱码的解决方案

    关于Apache默认编码错误 导致网站乱码的解决方案

    Apache默认编码UTF-8在解析A网站的时候没有任何问题,当运行B网站时出现的"蝌蚪文"乱码问题
    2011-12-12
  • linux大于2T的磁盘使用GPT分区的方法分享

    linux大于2T的磁盘使用GPT分区的方法分享

    众所周知,在linux下磁盘分区大于2TB的时候我不能使用常用Fdisk命令。是不是就没有办法在linux使用大容量的磁盘呢?答案:不是
    2012-11-11
  • PHP脚本内存泄露导致Apache频繁宕机解决方法

    PHP脚本内存泄露导致Apache频繁宕机解决方法

    这篇文章主要介绍了PHP脚本内存泄露导致Apache频繁宕机解决方法,本文的原因是因为MaxRequestsPerChild参数没有配置正确,配置MaxRequestsPerChild后解决了本文中的问题,需要的朋友可以参考下
    2014-09-09
  • Linux下NTP服务器配置详细过程

    Linux下NTP服务器配置详细过程

    大家好,本篇文章主要讲的是Linux下NTP服务器配置详细过程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下哦,方便下次浏览
    2021-11-11
  • 13个实用的Apache Rewrite重写规则

    13个实用的Apache Rewrite重写规则

    这篇文章主要介绍了13个实用的Apache Rewrite重写规则,需要的朋友可以参考下
    2014-03-03

最新评论