CentOS7/完美升級gcc版本方法

在某些應用場景中,需要特定的gcc版本支持,但是輕易不要去編譯gcc、不要去編譯gcc、不要去編譯gcc,我這里推薦使用紅帽提供的開發(fā)工具包來管理gcc版本,這樣做的好處是隨時切換版本,并且可以并存多個版本,不破壞原有gcc環(huán)境。
紅帽官方Developer Toolset文檔地址:
https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/8/
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=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
激活gcc版本,使其生效
scl enable devtoolset-8 bash
或
source /opt/rh/devtoolset-8/enable
此時通過gcc --version命令可以看到,gcc版本已經(jīng)變成8.x.x,值得注意的是這僅僅在當前bash生效,如果需要永久生效,可以請自行添加環(huán)境變量。
CentOS8 升級gcc
在CentOS8系統(tǒng)中,默認gcc版本已經(jīng)是8.x.x版本,但是在一些場景中,還是需要高版本的gcc。
注意:不要去編譯升級gcc,編譯升級后可能會給你帶來額外的麻煩。本文基于CentOS8.3版本驗證通過,僅適用于CentOS8、Redhat8版本。
在CentOS8版本中,紅帽也提供了開發(fā)工具包管理gcc版本,install的包名從devtoolset-x變成了gcc-toolset-x,通過該方式升級gcc好處就是隨時可以切換gcc版本,不破壞原有gcc環(huán)境。
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=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-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版本已經(jīng)變成10.x.x,值得注意的是這僅僅在當前bash生效,如果需要永久生效,可以請自行添加環(huán)境變量。
10T 技術資源大放送!包括但不限于:Linux、虛擬化、容器、云計算、網(wǎng)絡、Python、Go 等。在開源Linux公眾號內(nèi)回復「10T」,即可免費獲?。?/span>
shell編程100例(附PDF下載)
IPv6技術白皮書(附PDF下載)
Linux主流發(fā)行版本配置IP總結(jié)(Ubuntu、CentOS、Redhat、Suse)
批量安裝Windows系統(tǒng)
無人值守批量安裝服務器
運維必備的《網(wǎng)絡端口大全》,看這一份就夠了。
收藏:服務器和存儲知識入門
什么叫SSH?原理詳解,看這一篇就夠了!
Nginx面試40問(收藏吃灰)
20 個 Linux 服務器性能調(diào)優(yōu)技巧
超詳細!一文帶你了解LVS四層負載均衡企業(yè)級實踐!
收藏 | Linux系統(tǒng)日志位置及包含的日志內(nèi)容介紹
100 道 Linux 常見面試題,建議收藏,慢慢讀~
服務器12種基本故障+排查方法
IT運維管理常用工具大全,讓你成為真正的高手
什么是QoS?
有收獲,點個在看


