一开始,并没有升级gcc的打算,因为这东西,代码多,编译起来对服务器压力很大时间也很久,但魔改bbr突然就无法使用旧版本的gcc编译(4.9.0以下均不可以)。没有办法,毕竟魔改bbr这种强悍的东西不能少,但yum安装的gcc都是4.4.7版本,无法编译魔改bbr。
那…就升级吧
一,安装gcc基本依赖的库
安装旧版本gcc和gcc++(坑爹还要自己编译自己)
yum install -y gcc gcc-c++
安装一些基本需要的东西
yum install -y glibc-static libstdc++-static wget make textinfo-tex flex zip libgcc.i686 glibc-devel.i686 (以上为x86_64的CentOS 6所需要的)
yum install -y glibc-static libstdc++-static wget make textinfo-tex flex zip libgcc.i386 glibc-devel.i386 (以上为x86_64的CentOS 5所需要的)
那么gcc所依赖的库基本安装完成
二,编译gcc
先从gcc官网下载源码包,我建议是4.9.4版本的,太高估计也不怎么好,以及要下载tar.bz2压缩包的!不要下载tar.gz,解压会比tar.bz2慢很多。
wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.bz2
解压
tar jxf gcc-4.9.4.tar.bz2
等一会,解压完成后,进入目录
cd gcc-4.9.4
执行一个gcc自带神奇的脚本,会自动安装gcc所依赖的库
输入以下命令
./contrib/download_prerequisites
接下来就是编译了
先建立一个文件夹放gcc编译文件
mkdir gcc-build
进入目录
cd gcc-build
生成make文件
注意,一定要绝对路径,你的gcc源码包放在什么位置就写什么,比如我刚刚是解压到了/root/gcc-4.9.4里(这么做主要是为了防止路径出错)
为了避免安装后系统里出现多个版本的 GCC,这里直接将编译安装的目录指定为 /usr,如果不指定 –prefix,则会默认安装到 /usr/local 下。
/root/gcc-4.9.4/configure –prefix=/usr
然后就是漫长的make了,可以开screen,睡醒后再执行make install,就可以了。
输入gcc -v
若看到4.9.4,那么说明升级成功了
三,尾语
编译gcc过程是非常非常漫长,这是取决于你的服务器或电脑能力,和io性能,有人半小时编译完了,有人三个小时都没编译完,总之,gcc能不编译安装就不编译安装,yum一键安装是真正爽!