一、前言
本文介紹在CentOS7.8系統下使用YUM升級GCC版本的相關操作步驟。
CentOS7默認安裝的gcc版本是4.8版本,gcc 4.8最主要的一個特性就是全面支持C++11,如果不清楚什麼用的也沒關係,簡單說一些C++11標準的程序都需要gcc 4.8以上版本的gcc編譯器編譯。很多工具依賴的是更高版本的gcc,比如編譯MySQL 8.0(8.0.16以上版本是C++14標準,需gcc 5.3以上版本)、Redis 6.0.x、GRPC等。手動編譯升級gcc往往耗時長,而且不一定能成功,使用devtoolset 可以快速切換gcc版本。
採用CentOS的一個第三方庫SCL(軟件選集)的 devtoolset ,SCL可以在不覆蓋原系統軟件包的情況下安裝新的軟件包與老軟件包共存並且可以使用scl命令切換,不過也有個缺點就是只支持64位的。
官網:https://gcc.gnu.org/
源碼包下載:
http://ftp.gnu.org/gnu/gcc
特別說明:
- 目前第三方庫SCL還沒有gcc 11.x以上版本的YUM源,若要升級為11.x以上的版本需要通過源碼編譯安裝。
- 第三方庫SCL的devtoolset-6版本已經結束支持,只能通過源碼編譯安裝升級gcc 6.x。
- 第三方庫SCL的devtoolset-4及devtoolset-3版本(即gcc 5.x 和 4.9.2版本)已經結束支持,只能通過其他方法安裝升級gcc 5.x 和 4.9.2。
- 若是在RHEL系統上升級GCC,安裝第三方庫SCL後需為系統啟用RHSCL存儲庫,使用命令:
yum-config-manager --enable rhel-server-rhscl-7-rpms二、查看系統默認GCC版本
gcc -v
三、升級為10.2.1版本
## 安裝第三方SCL源倉庫
yum -y install centos-release-scl## 安裝gcc 10.2.1 的版本
yum -y install devtoolset-10-gcc*
或
yum -y install devtoolset-10-gcc devtoolset-10-gcc-c++ devtoolset-10-binutils## 激活gcc 10.2.1
scl enable devtoolset-10 bash## 驗證
gcc -v
四、升級為9.3.1版本
## 安裝第三方SCL源倉庫
yum -y install centos-release-scl## 安裝gcc 9.3.1 的版本
yum -y install devtoolset-9-gcc*
或
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils## 激活gcc 9.3.1
scl enable devtoolset-9 bash## 驗證
gcc -v
## 需要注意的是使用scl命令激活啟用gcc只是臨時的,退出當前shell環境或重啟系統就會恢復為原來的gcc版本。若要想一直使用升級後的gcc版本,可配置系統環境變量,使用如下命令:
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
source /etc/profile五、升級為8.3.1版本
## 安裝第三方SCL源倉庫
yum -y install centos-release-scl## 安裝gcc 8.3.1 的版本
yum -y install devtoolset-8-gcc*
或
yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils## 激活gcc 8.3.1
scl enable devtoolset-8 bash## 驗證
gcc -v
## 需要注意的是使用scl命令激活啟用gcc只是臨時的,退出當前shell環境或重啟系統就會恢復為原來的gcc版本。若要想一直使用升級後的gcc版本,可配置系統環境變量,使用如下命令:
echo "source /opt/rh/devtoolset-8/enable" >> /etc/profile
source /etc/profile六、升級為7.3.1版本
## 安裝第三方SCL源倉庫
yum -y install centos-release-scl## 安裝gcc 7.3.1 的版本
yum -y install devtoolset-7-gcc*
或
yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils## 激活gcc 7.3.1
scl enable devtoolset-7 bash## 驗證
gcc -v
## 需要注意的是使用scl命令激活啟用gcc只是臨時的,退出當前shell環境或重啟系統就會恢復為原來的gcc版本。若要想一直使用升級後的gcc版本,可配置系統環境變量,使用如下命令:
echo "source /opt/rh/devtoolset-7/enable" >> /etc/profile
source /etc/profile七、升級為5.2.1版本
## 安裝軟件源
wget -O /etc/yum.repos.d/hhorak-devtoolset-4-rebuild-bootstrap-epel-7.repo https://copr.fedorainfracloud.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap/repo/epel-7/hhorak-devtoolset-4-rebuild-bootstrap-epel-7.repo
或
wget -O /etc/yum.repos.d/hhorak-devtoolset-4-rebuild-bootstrap-epel-7.repo https://copr.fedorainfracloud.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap2/repo/epel-7/hhorak-devtoolset-4-rebuild-bootstrap2-epel-7.repo
yum makecache fast## 安裝gcc 5.2.1 的版本
yum -y install devtoolset-4-gcc*
或
yum -y install devtoolset-4-gcc devtoolset-4-gcc-c++ devtoolset-4-binutils## 激活gcc 5.2.1
scl enable devtoolset-4 bash## 驗證
gcc -v
## 需要注意的是使用scl命令激活啟用gcc只是臨時的,退出當前shell環境或重啟系統就會恢復為原來的gcc版本。若要想一直使用升級後的gcc版本,可配置系統環境變量,使用如下命令:
echo "source /opt/rh/devtoolset-4/enable" >> /etc/profile
source /etc/profile八、升級為4.9.2版本
註:其實也沒必要升級,CentOS7系統默認安裝的是4.8.5,同為大版本4,功能作用應相差無幾。
## 安裝軟件源
wget -O /etc/yum.repos.d/rhscl-devtoolset-3-el7-epel-7.repo https://copr.fedorainfracloud.org/coprs/rhscl/devtoolset-3-el7/repo/epel-7/rhscl-devtoolset-3-el7-epel-7.repo
yum makecache fast## 安裝gcc 4.9.2 的版本
yum -y install devtoolset-3-gcc*
或
yum -y install devtoolset-3-gcc devtoolset-3-gcc-c++ devtoolset-3-binutils## 激活gcc 4.9.2
scl enable devtoolset-3 bash## 驗證
gcc -v
## 需要注意的是使用scl命令激活啟用gcc只是臨時的,退出當前shell環境或重啟系統就會恢復為原來的gcc版本。若要想一直使用升級後的gcc版本,可配置系統環境變量,使用如下命令:
echo "source /opt/rh/devtoolset-3/enable" >> /etc/profile
source /etc/profile原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/208628.html
微信掃一掃
支付寶掃一掃