Centos7如何升級(jí)GCC
一、環(huán)境準(zhǔn)備
1. 檢查當(dāng)前 GCC 版本
gcc --version

2. 清理系統(tǒng)環(huán)境
sudo yum clean all sudo yum update -y
二、安裝 SCL 倉(cāng)庫(kù)
此處我們使用scl來切換gcc版本
SCL(Software Collections)提供高版本軟件包,且與系統(tǒng)默認(rèn)工具鏈隔離。
sudo yum install -y centos-release-scl
三、安裝 GCC 9.3
1. 安裝 devtoolset-9
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++
如果報(bào)錯(cuò)如下,是因?yàn)镃entOS 7 的SCL倉(cāng)庫(kù)已停止維護(hù),默認(rèn)的鏡像服務(wù)器已失效,導(dǎo)致無法通過yum安裝

解決方案 (切換為阿里云鏡像環(huán)境)
1、查看自己的源環(huán)境
主要查看 base是否為阿里云環(huán)境 以及 sclo rh 是否為阿里云環(huán)境(以下是配圖)
yum repolist

2、切換配置信息
# 使用阿里云鏡像 sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 修改所有倉(cāng)庫(kù)配置為阿里云地址: sudo sed -i 's|vault.centos.org|mirrors.aliyun.com/centos|g' /etc/yum.repos.d/*.repo
3、驗(yàn)證scl源 (如果和我的不一致可能回導(dǎo)致404 小伙伴可直接復(fù)制粘貼)
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、重新構(gòu)建
切記一定要多
sudo yum clean all # 清除 sudo yum update -y # 更新 sudo yum makecache #構(gòu)建
sudo yum clean all sudo yum makecache
證明沒有任何問題

5、手動(dòng)下載安裝文件
理論上各位不需要執(zhí)行這個(gè)步驟 重新執(zhí)行 sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ 命令即可 如果出現(xiàn)像我一樣 可依照我如此下載將文件名稱換成自己對(duì)于的即可
注意:我當(dāng)時(shí)不知道為什么沒有下載下下來 在執(zhí)行命令時(shí)顯示有五個(gè)文件404不找到 這是我手動(dòng)配置的地址可以直接下載下來
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、安裝環(huán)境
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.rpm8、驗(yàn)證 GCC 是否安裝成功
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++

2. 激活 GCC 9.3 環(huán)境
scl enable devtoolset-9 bash # 驗(yàn)證版本 gcc --version
切換成功!

四、永久切換為GCC 9.3
正常上述步驟后你的機(jī)器已經(jīng)擁有了 9.3的環(huán)境,但是因?yàn)?nbsp; scl enable devtoolset-9 bash 只是當(dāng)前會(huì)話有效 當(dāng)你新開會(huì)話之后 gcc 版本就會(huì)失效(小伙伴們可以打開一個(gè)新的窗口驗(yàn)證一下),所以建議設(shè)置成永久使用
1. 修改用戶環(huán)境變量
# 寫入配置信息 echo 'source /opt/rh/devtoolset-9/enable #This is gcc version' >> ~/.bashrc # 驗(yàn)證是否添加成功 vim ~/.bashrc # 刷新配置 source ~/.bashrc
2. 驗(yàn)證生效
打開新客戶端 驗(yàn)證 gcc 版本是否生效

親測(cè)可用!
- 注:這里如果不想啟動(dòng) 只需要把 寫入的數(shù)據(jù)刪除掉,打開新窗口就回變回原來的版本
- 注:大家安裝時(shí) 一定要注意自己的環(huán)境,目前我安裝redis用到了 9.X的GCC環(huán)境就不做其他演示,個(gè)人理解如果想要升級(jí)至 GCC 11 也是此流程,文件不同罷了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
ubuntu20.04不顯示wifi圖標(biāo)的問題及解決
文章主要介紹了在Ubuntu 20.04系統(tǒng)中安裝WiFi網(wǎng)卡驅(qū)動(dòng)的方法,包括通過軟件和更新、更換軟件源、激活BCM無線網(wǎng)卡等步驟2026-03-03
阿里云OSS訪問權(quán)限配置(RAM權(quán)限控制)實(shí)現(xiàn)
這篇文章主要介紹了阿里云OSS訪問權(quán)限配置(RAM權(quán)限控制)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

