1. 前言
CentOS 7
默认安装的 gcc
版本为 4.8
,但是很多时候都会需要用到更高版本的 gcc
来编译源码,那么本文将会介绍如何在线升级 CentOS
的 gcc
版本。
2. 升级 GCC
(1). 安装 centos-release-scl
;
[imaginemiracle@centos7 ~]$ sudo yum install centos-release-scl
(2). 安装 devtoolset
;
[imaginemiracle@centos7 ~]$ sudo yum install devtoolset-7-gcc*
[注]:笔者这里安装的是 gcc 7.x 版本的,若想安装其它版本,则修改对应的大版本号即可。如:要安装 gcc 9.x,执行 sudo yum install devtoolset-9-gcc*
(3). 使能所需版本的 devtoolset
,因为该功能的原因,所以可以同时安装多个不同版本的 gcc
,当在需要用对应版本的时候则只需要使用如下命令切换至即可;
[imaginemiracle@centos7 ~]$ scl enable devtoolset-7 bash
[注]:该命令只对当前终端生效,打开其它终端需要重新执行。下文将会介绍一劳永逸的方法。
(4). 查看当前版本
[imaginemiracle@centos7 ~]$ gcc -v
OK!没问题,我们已经成功安装好了 gcc 7.x
。
3. 永久替换旧版 GCC
安装好 devtoolset
会在 /opt/rh
目录下创建对应的目录,包含对应版本的 gcc
工具链,和使能脚本。
一般来说,若要启用某个版本的 gcc
,需要 source
对应 devtoolset
目录下的 enable
文件。
[imaginemiracle@centos7 ~]$ source /opt/rh/devtoolset-7/enable
无论是这样每次执行 source
,或者写入脚本,都感觉不方便。或者是放入开机启动脚本中,开机自动执行,也行。
不过,除了上述方法外,还有一种一劳永逸的方法,那就是创建软连接将 /usr/bin/gcc
替换掉。
[imaginemiracle@centos7 ~]$ mv /usr/bin/gcc /usr/bin/gcc-4.8.5
[imaginemiracle@centos7 ~]$ ln -s /opt/rh/devtoolset-7/root/bin/gcc /usr/bin/gcc
[imaginemiracle@centos7 ~]$ mv /usr/bin/g++ /usr/bin/g++-4.8.5
[imaginemiracle@centos7 ~]$ ln -s /opt/rh/devtoolset-7/root/bin/g++ /usr/bin/g++
[imaginemiracle@centos7 ~]$ gcc --version
[imaginemiracle@centos7 ~]$ g++ --version