CentOS安装最新的gcc-9
前言
CentOS 7自带的GCC版本较旧(通常是4.8.5),再者最近技术部同事有安装vllm需求,默认自带的4.8的版本太老了会导致vllm安装失败,因此需升级至9.3.1版本为例。
安装centos-release-scl
执行命令:yum install centos-release-scl
注意:这一步有报错的话应该是这样的”Could not resolve host: mirrorlist.centos.org”,这是因为CentOS7的SCL源在2024年6月30日停止维护了。 scl源里面默认也是使用了centos官方的地址,因此后续都会出现这个错误,建议替换为阿里云的源。
切换至第三方镜像源(推荐阿里云)
# 备份原有仓库配置
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下载阿里云镜像配置(适配 CentOS 7)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理旧缓存并生成新缓存
sudo yum clean all && sudo yum makecache
操作后验证
# 再次尝试安装
sudo yum install -y centos-release-scl
# 检查 SCL 仓库是否启用
yum repolist | grep scl
rpm -qa |grep centos-release-scl
#centos-release-scl-rh-2-3.el7.centos.noarch
#centos-release-scl-2-3.el7.centos.noarch
替换scl源地址
cd /etc/yum.repos.d/
找到 CentOS-SCLo-scl.repo
和 CentOS-SCLo-scl-rh.repo
,进行替换,如下图红框。
依次修改编辑这两个文件CentOS-SCLo-scl.repo
和 CentOS-SCLo-scl-rh.repo
,注意两个文件都要。将里面的 mirrorlist= 注释掉,再将baseurl= 取消注释,并把baseurl的域名地址改为阿里云https://mirrors.aliyun.com
,如下图。
安装devtoolset
# 再次更新一下yum源信息
yum install centos-release-scl
#安装devtoolset-9(包含GCC 9.x)
yum install devtoolset-9-gcc*
#查看已安装的 SCL 软件集
[root@localhost yum.repos.d]# scl --list
devtoolset-9
# 激活对应的devtoolset
[root@localhost yum.repos.d]# scl enable devtoolset-9 bash
# 验证GCC版本
[root@localhost yum.repos.d]# gcc -v
如果需要永久启用,可以将以下命令添加到~/.bashrc
文件中(在文件末尾添加),注意填写你自己安装的版本。
scl enable devtoolset-9 bash
source /opt/rh/devtoolset-9/enable
其他可用的devtoolset
版本:
devtoolset-7
:GCC 7.xdevtoolset-8
:GCC 8.xdevtoolset-9
:GCC 9.xdevtoolset-10
:GCC 10.xdevtoolset-11
:GCC 11.x