CentOS作為服務器系統,追求的是穩定性和高性能,運行其上的軟件自然不會同步得那么實時。普通軟件,找到合適的YUM倉庫就能順利解決依賴完成更新。
但是對於GCC這種底層應用來講,涉及到的依賴非常多。更新超復雜,且不建議在生產服務器上進行更新。但如果你需要新版本的GCC該怎樣呢?實際上Redhat和CentOS一直對開發有專門的支持,即devtools軟件包。包含有:gcc、gdb、binutils、elfutils、SystemTap、Valgrind、OProfile和dwz。以CentOS為例:
wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -O /etc/yum.repos.d/devtools-1.1.repo
yum -y --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++
為了不影響本機的gcc環境,開發工具默認安裝在‘/opt/centos/devtoolset-1.1/root/’目錄下。需要修改用戶的環境變量方可使用:
export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc
export CPP=/opt/centos/devtoolset-1.1/root/usr/bin/cpp
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/c++
推薦使用gcc默認給出的環境變量設置腳本‘/opt/centos/devtoolset-1.1/enable ’。將其加到有需要用戶的環境變量中,重新登錄即生效。
echo 'source /opt/centos/devtoolset-1.1/enable' >> ~/.bash_profile
source /opt/centos/devtoolset-1.1/enable
gcc -v
筆者小試了一把,在CentOS 6.4下,原生GCC版本為4.4.7-3,官網給出的開發版本為4.7.2-5。拿來編譯linux-3.9.7內核,生成的文件變小了一丁點,時間沒太留意,上應該更快吧。哈哈……

