Linux云计算架构-centos7系统gcc 4.8.5版本升级为gcc 9.3.1

Linux云计算架构-gcc版本升级

1、 查看系统版本及系统内核和gcc版本

[root@master ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)
[root@master ~]# uname -a
Linux master 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@master ~]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 

# 可以看到,gcc版本是4.8.5,安装在硬件名称为x86_64的linux系统上。

2、下载centos-release-scl源和scl-utils-build源

centos-release-scl源下载地址:https://cbs.centos.org/koji/buildinfo?buildID=24739【本地下载rz上传】

centos-release-scl源的依赖包centos-release-scl-rh下载:https://cbs.centos.org/kojifiles/packages/centos-release-scl-rh/2/3.el7.centos/noarch/centos-release-scl-rh-2-3.el7.centos.noarch.rpm【本地下载rz上传或者wget命令下载】

scl-utils-build源下载地址:http://rpmfind.net/linux/centos/7.8.2003/os/x86_64/Packages/scl-utils-build-20130529-19.el7.x86_64.rpm【本地下载rz上传或者wget命令下载】

# 先安装依赖包centos-release-scl-rh
[root@master ~]# rpm -ivh centos-release-scl-rh-2-3.el7.centos.noarch.rpm

# 安装centos-release-scl
[root@master ~]# rpm -ivh centos-release-scl-2-3.el7.centos.noarch.rpm

# 安装scl-utils-build
[root@master ~]# rpm -ivh scl-utils-build-20130529-19.el7.x86_64.rpm

# 列出scl源可以安装的软件包
[root@master ~]# yum list all | grep centos-sclo-rh

3、安装高版本的gcc、gcc-c++、gdb

# 查看下scl源中gcc版本是多少,这里是9.3.1,之前是4.8.5
[root@master ~]# yum list all | grep centos-sclo-rh | grep devtool
devtoolset-9-gcc.x86_64                    9.3.1-2.el7          centos-sclo-rh  
devtoolset-9-gcc-c++.x86_64                9.3.1-2.el7          centos-sclo-rh  
devtoolset-9-gcc-gdb-plugin.x86_64         9.3.1-2.el7          centos-sclo-rh 

# 安装gcc、gcc-c++、gdb
[root@master ~]# yum install devtoolset-9-gcc.x86_64 devtoolset-9-gcc-c++.x86_64 devtoolset-9-gcc-gdb-plugin.x86_64 -y

# 查看下scl安装了的包列表
[root@master ~]# scl --list 
devtoolset-9

# 创建一个scl包的bash会话环境,即切换gcc版本
[root@master ~]# scl enable devtoolset-9 bash

# 再次查看,可以看到gcc版本已经是9.3.1了。
[root@master ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-9/root/usr --mandir=/opt/rh/devtoolset-9/root/usr/share/man --infodir=/opt/rh/devtoolset-9/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-9.3.1-20200408/obj-x86_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC) 

# 退出scl的bash环境,gcc版本又会变回4.8.5
[root@master ~]# exit
exit

=================================================================
scl -h   查看帮助
scl -l   列出安装好的scl包
scl enable scl包 命令   启用scl软件包
scl enable devtoolset-9 bash   创建一个scl包的bash会话环境
exit     # 退出scl bash环境,恢复系统的bash环境
=================================================================

在需要高版本gcc进行编译其他软件包时,可以使用命令
scl enable devtoolset-9 bash
切到到gcc高版本的bash环境,然后再进行编译。

博主这里是为了安装redis6才升级的gcc,因为centos7自带的gcc版本不支持redis6的源码编译【make报错】。升级完成后,赶紧打个快照。

猜你喜欢

转载自blog.csdn.net/weixin_36522099/article/details/108302711