CentOS 7雖然已經出了很多年了,但依然會有很多人選擇安裝CentOS 6,CentOS 6有些依賴包和軟件都比較老舊,如今天的主角gcc編譯器,CentOS 6的gcc版本為4.4,CentOS 7為4.8。gcc 4.8最主要的一個特性就是全面支持C++11,如果不清楚什么用的也沒關系,簡單說一些C++11標准的程序都需要gcc 4.8以上版本的gcc編譯器編譯,如MySQL 8.0版本(8.0.16以上版本是C++14標准,需gcc 5.3以上版本)。
CentOS 6雖然是gcc 4.4的老舊版本,但是也可以升級gcc來安裝gcc 4.8,我們今天就不采用編譯安裝的方法了,gcc安裝起來非常費時,我們采用CentOS的一個第三方庫SCL(軟件選集),SCL可以在不覆蓋原系統軟件包的情況下安裝新的軟件包與老軟件包共存並且可以使用scl命令切換,不過也有個缺點就是只支持64位的。
確定當前gcc版本,執行命令:gcc --version
一般如果需要升級gcc至4.8或更高版本,建議直接采用安裝SCL源之后安裝devtoolset-6(devtoolset-6目前gcc版本為6.3),因為devtoolset-4及之前的版本都已經結束支持,只能通過其他方法安裝
升級到gcc 6.3:
升級方法:
yum -y install centos-release-scl
yum -y install devtoolset-6-gcc devtoolset-6-gcc-c++ devtoolset-6-binutils
scl enable devtoolset-6 bash
yum -y install devtoolset-6-gcc devtoolset-6-gcc-c++ devtoolset-6-binutils
scl enable devtoolset-6 bash
需要注意的是scl命令啟用只是臨時的,退出shell或重啟就會恢復原系統gcc版本。
如果要長期使用gcc 6.3的話:
echo "source /opt/rh/devtoolset-6/enable" >>/etc/profile
這樣退出shell重新打開就是新版的gcc了
以下其他版本同理,修改devtoolset版本號即可。