CentOS 完美升级gcc版本方法

690阅读 0评论2023-02-23 大镇
分类:LINUX



https://(删除我)zhuanlan.zhihu.com/p/535657060

在某些应用场景中,需要特定的gcc版本支持,但是轻易不要去编译gcc不要去编译gcc不要去编译gcc,我这里推荐使用红帽提供的开发工具包来管理gcc版本,这样做的好处是随时切换版本,并且可以并存多个版本,不破坏原有gcc环境。

红帽官方Developer Toolset文档地址:

access.redhat.com/docum

CentOS7 升级gcc版本

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版本

可通过centos-release-scl源安装devtoolset包

yum install centos-release-scl
yum install devtoolset-8

或自行添加源来安装(我这里以CentOS7为例)

vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=
#mirrorlist=
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

激活gcc版本,使其生效

scl enable devtoolset-8 bash
或
source /opt/rh/devtoolset-8/enable

此时通过gcc --version命令可以看到,gcc版本已经变成8.x.x,值得注意的是这仅仅在当前bash生效,如果需要永久生效,可以请自行添加环境变量。

CentOS8 升级gcc

在CentOS8系统中,默认gcc版本已经是8.x.x版本,但是在一些场景中,还是需要高版本的gcc。

注意:不要去编译升级gcc,编译升级后可能会给你带来额外的麻烦。本文基于CentOS8.3版本验证通过,仅适用于CentOS8、Redhat8版本。

在CentOS8版本中,红帽也提供了开发工具包管理gcc版本,install的包名从devtoolset-x变成了gcc-toolset-x,通过该方式升级gcc好处就是随时可以切换gcc版本,不破坏原有gcc环境。

gcc-toolset-9对应gcc9.x.x版本
gcc-toolset-10对应gcc10.x.x版本
gcc-toolset-11对应gcc11.x.x版本

例:升级gcc至10.x.x版本

1 配置yum源

vim /etc/yum.repos.d/Centos-8.repo
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=
gpgcheck=1
enabled=1
 
 
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=
gpgcheck=1
enabled=1
gpgkey=
 
 
[AppStream]
name=CentOS-$releasever - AppStream - mirrors.aliyun.com
failovermethod=priority
baseurl=
gpgcheck=1
enabled=1
gpgkey=
 
 
[8-AppStream]
name=CentOS-$releasever - 8-AppStream
baseurl=
gpgcheck=0
enabled=1

2 安装gcc-toolset-10

dnf install gcc-toolset-10

3 激活gcc版本,使其生效

scl enable gcc-toolset-10 bash
或
source /opt/rh/gcc-toolset-10/enable

此时通过gcc --version命令可以看到,gcc版本已经变成10.x.x,值得注意的是这仅仅在当前bash生效,如果需要永久生效,可以请自行添加环境变量。

上一篇:linux安装openconnect
下一篇:Pip源设置(使用阿里云源)