博文背景:想在Centos7上面安装gcc4.9.2, 我的腾讯云服务器 版本是Centos7,自带gcc版本4.8.5,我的服务器版本如下:
尝试过各种失败,踩过N个坑,最终再买了一台Centos6.8服务器,通过更新repo源,下载devtoolset-3-gcc.***,yum install, 方才成功安装上gcc4.9.2
尝试一:使用Centos7自带的devtoolset安装gcc
使用 yum list | grep devtoolset | grep gcc 查看一下系统自带的gcc版本:
Centos7自带的 devtoolset-7 对应gcc版本是7.3.1,devtoolset-8 对应gcc版本更高。如果使用devtoolset安装gcc7.3.1或者更高版本,只需使用下面几条命令:
#1.使用devtoolset-7安装gcc7.3.1
yum install devtoolset-7-gcc.x86_64 devtoolset-7-gcc-c++.x86_64 devtoolset-7-gcc-gdb-plugin.x86_64
#2.查看当前可用的gcc版本
scl -l
#3.设置生效的gcc版本(需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统)
scl enable devtoolset-7 bash
#4.修改bash的环境变量,设置长期使用
echo 'source /opt/rh/devtoolset-7/enable' >> /etc/profile
尝试二:直接下载gcc4.9.2.tar.gz安装包,使用Makefile编译源码,生成gcc程序,并且下载安装了相关的依赖库(gmp、mpc、mpfr等)(如何下载的?博客园、优快云上查找各种安装教程)
经过一个多小时(甚至更长时间)的编译,最终下载过来的源码使用自带的gcc4.8.5根本编译不过,还是提示缺失这些依赖库,真是心累!
尝试三:Centos7, 更新repo源,安装devtoolset-3-gcc.***,yum instal, 结果提示缺失必要安装的依赖包:libgmp.so.3(), libmpfr.so.1()等,其实我已经在尝试二中已经安装了这些依赖包,但还是提示缺失,心累+1
#1.下载yum源
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
#2.yum安装gcc4.9.2
yum install devtoolset-3-gcc devtoolset-3-binutils devtoolset-3-gcc-c++
尝试四:购买centos6.8, 自带gcc版本gcc4.4.7。
再次更新repo源,下载devtoolset-3-gcc.***,yum install , 我的天!终于成功了!!!
#1.下载yum源
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
#2.yum安装gcc4.9.2
yum install devtoolset-3-gcc devtoolset-3-binutils devtoolset-3-gcc-c++
#以下为替换系统GCC
#3.设置环境变量 (可以不设置)
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++
#4.使用软链接替换本地gcc版本
ln -s /opt/rh/devtoolset-3/root/usr/bin/* /usr/local/bin/
#5.查看gcc版本
gcc --version
总结:
1. 如果要安装低版本软件,要考虑使用低版本的Ceotos系统。Centos7已经删除了gmp、mpc、mpfr等依赖库,所以不支持自行安装gcc4.9、gcc5.4等gcc版本。
2. 不建议在Centos系统,通过下载并编译源码(例如gcc4.9.2.tar.gz,mysql5.7.*.tar.gz等等) 来安装软件。其一编译时间很长,再者如果源码编译不过,提示缺失依赖库等,会非常棘手。
3. Centos系统,建议通过更新repo源,使用 yum install 安装所需要的软件。(mysql,httpd, gcc等等)