CentOS7升级gcc版本【非常简单已解决】

Centos 7默认gcc版本为4.8,有时需要更高版本的,本人最近安装vllm需要,4.8的版本太老了会导致vllm安装失败,有一个xformers的报错,这里以升级至9.3.1版本为例。

一、安装centos-release-scl

sudo yum install centos-release-scl

注意:这一步有报错的话应该是这样的"Could not resolve host: mirrorlist.centos.org",如果没有报错去看第二步的安装devtoolset。

Could not resolve host: mirrorlist.centos.org
如图
在这里插入图片描述

这是因为CentOS7的SCL源在2024年6月30日停止维护了。 当scl源里面默认使用了centos官方的地址,无法连接,需要替换为阿里云。

解决步骤:

cd /etc/yum.repos.d/
ll

看到这两个文件,找到 CentOS-SCLo-scl.repo 和 CentOS-SCLo-scl-rh.repo
在这里插入图片描述

依次vi命令编辑这两个文件,注意两个文件都要。将里面的 mirrorlist= 注释掉,再将baseurl= 取消注释,并把baseurl的域名地址改为阿里云 https://mirrors.aliyun.com。

改成这样:

在这里插入图片描述

改完后再安装centos-release-scl

sudo yum install centos-release-scl

二、安装devtoolset

如果想安装其他版本的gcc,就改成devtoolset-11-gcc*,其他版本以此类推。

sudo yum install devtoolset-9-gcc*

查看已安装的 SCL 软件集

scl --list

在这里插入图片描述

三、激活对应的devtoolset

我们可以一次安装多个版本的devtoolset,需要的时候用下面这条命令可以临时切换到对应的版本。

scl enable devtoolset-9 bash
gcc -v

激活成功是这样的
在这里插入图片描述

到此完成gcc升级。

但是这样做的话,每次打开新的shell会话,都会默认使用4.8版本的gcc,需要scl enable devtoolset-9 bash来手动激活。这是因为系统默认的 GCC 版本(如 4.x)通常是系统自带的,而不是通过 SCL 安装的。SCL 主要用于安装和管理额外的软件集合版本。

解决办法:
编辑~/.bash_profile,在文件末尾添加 scl enable devtoolset-9 bash。(注意填写你自己安装的版本)

vi ~/.bash_profile

在这里插入图片描述