【运维技术分享】CentOS 7/8 升级GCC版本的最简单方法

TangLu 系统运维 2024-12-03 228 0

一、前言

在某些应用场景中需要特定的gcc版本支持,但如果通过编译方式安装GCC的话很大概率会导致系统出现问题,所以最好的办法是使用红帽提供的开发工具包来管理gcc版本,除了容易安装意外也可以实现GCC的多版本管理,不破坏系统自生的环境。


二、CentOS7 升级GCC

1、配置scl源

vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://mirror.centos.org/centos/7/sclo/$basearch/rh/
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo


2、安装devtoolset包,devtoolset和gcc版本对应关系如下:

devtoolset-3对应gcc4.x.x版本

devtoolset-4对应gcc5.x.x版本

devtoolset-6对应gcc6.x.x版本

devtoolset-7对应gcc7.x.x版本

devtoolset-8对应gcc8.x.x版本

devtoolset-9对应gcc9.x.x版本

devtoolset-10对应gcc10.x.x版本

# yum install centos-release-scl #如果自行配置的scl源,这步可省略
yum install devtoolset-8


3、激活gcc版本

#仅当前bash生效,如果需要永久生效可自行添加环境变量
scl enable devtoolset-8 bash
#查看版本
gcc --version


三、CentOS8 升级GCC

在 CentOS8 中,默认的gcc版本是8.x.x,如果需要更高级版本同样也可以借助上面的工具,只不过包名从devtoolset变成了gcc-toolset-x。

1、配置yum源

vim /etc/yum.repos.d/Centos-8.repo
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
 
 
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
 
 
[AppStream]
name=CentOS-$releasever - AppStream - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
 
 
[8-AppStream]
name=CentOS-$releasever - 8-AppStream
baseurl=http://mirrors.aliyun.com/centos/8-stream/AppStream/$basearch/os/
gpgcheck=0
enabled=1


2、安装gcc-toolsetgcc-toolset和gcc版本对应关系如下:

gcc-toolset-9对应gcc9.x.x版本

gcc-toolset-10对应gcc10.x.x版本

gcc-toolset-11对应gcc11.x.x版本

 dnf install gcc-toolset-10


3、激活gcc版本

scl enable gcc-toolset-10 bash
gcc --version

评论