目录
升级到gcc 6.3:devtoolset-6已经结束支持,请安装devtoolset-7
源码编译安装(centos 6.5 手动升级gcc7.4.0)
rpm升级
网上的文章大多是把操作的步骤一步一步的写出来,但是系统、环境、版本往往每个人都不相同,所以按照别人的教程经常失败。
此文主要教方法,掌握了方法,每个人根据自己的系统、版本下载gcc,下载依赖包,增加成功率。
获取升级包
查看 centOS 版本的方式:
cat /etc/redhat-release
以centOS6.5 安装gcc为例:
到网站http://archive.kernel.org/centos-vault根据自己的系统、版本、32位或者64位选择到Packages底下,下载gcc rpm安装包,
如我的是6.5的32位(i386):
http://archive.kernel.org/centos-vault/6.5/os/i386/Packages/ 下载gcc-4.4.7-4.el6.i686.rpm
执行升级安装
rpm -Uvh gcc-4.4.7-4.el6.i686.rpm
提示安装失败,依赖
error: Failed dependencies:
cpp = 4.4.7-4.el6 is needed by gcc-4.4.7-4.el6.i686
在http://archive.kernel.org/centos-vault/6.5/os/i386/Packages/ 目录下搜索cpp 找到cpp-4.4.7-4.el6.i686.rpm
下载,rpm -Uvh cpp-4.4.7-4.el6.i686.rpm 然后 安装gcc-4.4.7-4.el6.i686.rpm
遇到这样的依赖报错:
error: Failed dependencies:
libmpfr.so.1 is needed by cpp-4.4.7-4.el6.i686
因为linux的库前面会有个前缀lib,所以去搜索的时候要去掉lib 直接搜mpfr 就能搜到对应的rpm
也有例外的,如
libppl.so.7 is needed by cloog-ppl-0.15.7-1.2.el6.i686
libppl_c.so.2 is needed by cloog-ppl-0.15.7-1.2.el6.i686
虽然报了两个依赖,实际只需下载ppl的包(ppl-0.10.2-11.el6.i686.rpm)即可
一个一个的安装,遇到报依赖就到packages下去载相应的依赖库安装,直到最后把gcc rpm安装包安装上为止
该离线方法的要点是,通过命令:
cat /etc/issue 显示的是发行版本信息
或
lsb_release -a 显示的是发行版本信息
查出linux的发行版本6.5,然后到http://archive.kernel.org/centos-vault网站,根据自己的系统选择目录,找到/os/i386/Packages/ 下的gcc rpm 下载下来,安装。 (32位是选择i386 64选择目录x86_64)
yum升级
为CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本我们今天就不采用编译安装的方法了,gcc安装起来非常费时,我们采用CentOS的一个第三方库SCL(软件选集),SCL可以在不覆盖原系统软件包的情况下安装新的软件包与老软件包共存并且可以使用scl命令切换,不过也有个缺点就是只支持64位的。
一般如果需要升级gcc至4.8或更高版本,建议直接采用安装SCL源之后安装devtoolset-x,由于linux更新比较频繁,旧的devtoolset 版本都经常已经结束支持,导致安装失败,所以尽可能安装新版本的。
升级到gcc 6.3:devtoolset-6已经结束支持,请安装devtoolset-7
yum -y install centos-release-scl
yum -y install devtoolset-6-gcc devtoolset-6-gcc-c++ devtoolset-6-binutils
scl enable devtoolset-6 bash
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要