1、下载gcc升级需要的文件

在联网的centos7系统中下载gcc源码包:
wget https://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz

Centos7离线升级gcc_Centos7

如果需要其他版本可以访问https://ftp.gnu.org/gnu/gcc查找。

解压压缩文件:tar -xzvf gcc-9.3.0.tar.gz

进入gcc目录,执行contrib/download_prerequisites脚本:

Centos7离线升级gcc_gcc_02

将脚本下载的四个压缩文件和gcc压缩文件拷贝下来:

Centos7离线升级gcc_gcc_03

2、环境检查

检查centos7环境检查是否安装gcc:gcc -v

若没有安装gcc,则需要安装gcc:yum -y install gcc

检查是否安装make:make -v

Centos7离线升级gcc_Centos7_04

3、升级gcc

上传文件到要升级gcc的系统:

Centos7离线升级gcc_gcc_05

解压gcc文件,将其他4个压缩文件移动到gcc目录

Centos7离线升级gcc_Centos7_06

进入gcc目录,依次解压4个压缩文件

cd gcc-9.3.0/

tar -xjvf gmp-6.1.0.tar.bz2

tar -xjvf isl-0.18.tar.bz2

tar -xzvf mpc-1.0.3.tar.gz

tar -xjvf mpfr-3.1.4.tar.bz2

依次创建四个软连接

ln -s gmp-6.1.0 gmp

ln -s isl-0.18 isl

ln -s mpc-1.0.3 mpc

ln -s mpfr-3.1.4 mpfr

Centos7离线升级gcc_gcc_07


创建构建目录,并进入目录

mkdir build && cd build

提醒:构建时设置--prefix=/usr可以在升级时将原有gcc文件覆盖,升级完成后不用在额外配置软连接,但是如果升级失败可能导致原有gcc无法正常使用,所以升级前需要做好系统备份,作者选择使用vm生成快照的方式备份系统。

执行构建命令

../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr

执行make && make install命令

报错:

configure: error: in `/opt/gcc-9.3.0/build/gcc':

configure: error: C++ preprocessor "/lib/cpp" fails sanity check

需要c++编译器,执行yum -y install gcc-c++安装c++编译器。

再次执行make && make install命令,等待命令执行完成,大概需要2~3个小时。

升级完成后查看gcc版本:

Centos7离线升级gcc_Centos7_08