Centos5/6安装GCC4.8+

一般来说Centos5/6自带的GCC已经很低了,一般是4.1/4.4左右,但如果安装一些软件需求高版本的gcc就比较麻烦了。
除了下源码编译安装外,一直想找一种YUM源来直接安装的方法,源码编译太慢了…..

腾讯云cenos7版本没有32位的只好选个6版本的玩啦…果然Linux中的编译是一件很麻烦的事啊
而且还可能出现各种错误

最简单的方案

看到的时候说是centos5的方案,但是测试了下对6版本同样适用,几条命令执行一下即可

1
2
3
4
5
6
7
# 下载源
wget https://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo

yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
ln -s /opt/rh/devtoolset-2/root/usr/bin/* /usr/local/bin/
hash -r
gcc --version

可以顺便装下libxml2,编译PHP会用到

1
2
yum install libxml2
yum install libxml2-devel

yum安装全方案

GCC 4.8
和上面的其实基本一样啦~~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo

yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++ -y

# 临时编译前使用

export CC=/opt/rh/devtoolset-2/root/usr/bin/gcc
export CPP=/opt/rh/devtoolset-2/root/usr/bin/cpp
export CXX=/opt/rh/devtoolset-2/root/usr/bin/c++

# 以下为替换系统GCC,不建议这样操作

ln -s /opt/rh/devtoolset-2/root/usr/bin/* /usr/local/bin/
hash -r
gcc --version

GCC 4.9

1
2
3
4
5
6
7
8
9
wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo -O /etc/yum.repos.d/devtools-3.repo

yum install devtoolset-3-gcc devtoolset-3-binutils devtoolset-3-gcc-c++ -y

# 临时编译前使用

export CC=/opt/rh/devtoolset-3/root/usr/bin/gcc
export CPP=/opt/rh/devtoolset-3/root/usr/bin/cpp
export CXX=/opt/rh/devtoolset-3/root/usr/bin/c++

GCC 5.2

1
2
3
4
5
6
7
8
9
wget https://copr.fedoraproject.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap/repo/epel-6/hhorak-devtoolset-4-rebuild-bootstrap-epel-6.repo -O /etc/yum.repos.d/devtools-4.repo

yum install devtoolset-4-gcc devtoolset-4-binutils devtoolset-4-gcc-c++ -y

# 临时编译前使用

export CC=/opt/rh/devtoolset-4/root/usr/bin/gcc
export CPP=/opt/rh/devtoolset-4/root/usr/bin/cpp
export CXX=/opt/rh/devtoolset-4/root/usr/bin/c++

源码安装

试过一次,编译很慢,最后还失败了…..可能是我的姿势不对…先存档,以后有机会再试
在编译安装 GCC 之前,系统里必须先要通过 yum 安装老版本的 GCC 和依赖库。
如果是在 x86_64 系统下编译的话,还需要安装 libgcc.i686、glibc-devel.i686 才行。
编译安装 GCC 内存不小于 1GB,Swap 不小于 1GB,硬盘最低不小于 10GB,否则极有可能会中途报错退出。
编译安装完后,目录 gcc-4.8.5 将会有 5GB 之多。
最前面的下载解压就不说了,去官网下就行了,然后就是解压后,下载编译所依赖的文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 安装前提条件
yum install -y gcc texinfo-tex flex zip libgcc.i686 glibc-devel.i686

cd gcc-4.8.1
./contrib/download_prerequisites
cd ..

# 新建目录用于存放编译结果:
mkdir gcc-build-4.8.1
# 进入新目录,并执行configure命令,产生makefile:
cd gcc-build-4.8.1
../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

# 编译,j4是四个线程,如果你是四核的话,如果配置低直接make吧...就像我
make -j4

sudo make install

补充-换yum源

我尝试换了阿里的yum源,但是还是4.4的版本,听说163的是4.8+的,这个没测试
不过换成国内的源应该还是比较好的,可以选择阿里的

1
2
# 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份),以下为下载链接:
http://mirrors.163.com/.help/CentOS6-Base-163.repo

然后就是生成缓存、安装了

1
2
3
yum clean all
yum makecache
yum -y install gcc gcc-g++

CentOS 5:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS 6:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

参考

http://lok.me/a/2045.html
https://www.zhangfangzhou.cn/centos6-devtoolset-gcc.html
https://my.oschina.net/vaero/blog/210485
https://teddysun.com/432.html

喜欢就请我吃包辣条吧!

评论框加载失败,无法访问 Disqus

你可能需要魔法上网~~