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