CentOS7升级GCC版本
在安装某些软件时,可能需要高版本的gcc以及glibc。通常我们使用的服务器操作系统版本较低,无法满足特定软件对glibc的需求。本文整理记录了在CentOS7上使用root权限安装高版本gcc的方法:
此处使用的是RedHat提供的Developer Toolset,无需手动下载源码进行编译,也不会破坏系统自带的环境。
devtoolset对应gcc的版本
1 | devtoolset-3对应gcc4.x.x版本 |
安装
1 | yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-gcc-gfortran devtoolset-8-binutils # 安装gcc g++ gfortran |
完成之后,会安装到
/opt/rh/devtoolset-8/
路径中。后续可以通过source /opt/rh/devtoolset-8/enable
命令激活gcc。
解决报错
很有可能会出现relocation error: /lib64/libpthread.so.0: symbol __libc...
的报错,原因是升级过程中删除了部分软链接。
此时大多数命令无法使用了,但是sln
命令还可以使用,创建相应的软链接即可:
1
2sln /usr/lib64/libc-2.28.so /lib64/libc.so.6
sln /usr/lib64/ld-2.28.so /usr/lib64/ld-linux-x86-64.so.2
离线安装
对于未联网的计算节点,可以离线安装(需要root权限):
1
2yum -y install --downloadonly --downloaddir=devtoolset-9 devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils # 仅下载,不安装(下载节点与后续安装节点的系统版本应当相同)
rpm -Uvh *.rpm # 在安装节点的对应文件夹中进行安装
References: