Centos7.x yum方式升级安装高版本GCC的方法
2025-04-24 10:09:15    21    0    0
admin

1. 安装SCL源

SCL是Software Collections的缩写,由CentOS特别兴趣小组所维护。其收录了许多程序的新版本,例如gcc, PHP, git, python等。安装的软件可与旧版共存,包名多以rh-为前缀。

# 安装SCL源---建议手动配置国内源
# yum install -y centos-release-scl centos-release-scl-rh​

安装完成后在/etc/yum.repos.d目录下会出现CentOS-SCLo-scl.repo和CentOS-SCLo-scl-rh.repo两个文件。安装后源默认启用。

2. 配置SCL国内源

# 备份原有配置文件
cp /etc/yum.repos.d/CentOS-SCLo-scl.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo.backup
cp /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo.backup
# 将 CentOS-SCLo-scl.repo 和 CentOS-SCLo-scl-rh.repo 中 baseurl 中的域名修改成 mirrors.aliyun.com
# 刷新缓存
yum clean all && yum makecache && yum repolist

3. 错误处理

错误:安装软件提示“14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"”看报错是无法解析mirrorlist.centos.org 这个域名,参考本文处理好了。

原因:Centos7.x系统在6月30日生命周期终止(EOL) 终止了,官方不在维护yum源了。

解决方法:好在官方并没有直接停止服务,而是将源中的文件都迁移到了vault.centos.org这个地址上,将yum源中的 “mirrorlist.centos.org”替换为“vault.centos.org”即可解决。

替代方法:

# 先备份原来yum文件,以防止改错还可以还原
cp -r /etc/yum.repos.d   /etc/yum.repos.d_backup
# 执行如下命令批量替换所有yum中的地址
sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo
# 更新yum换成即可
yum makecache

4. 安装高版本GCC工具链

# 安装GCC7
yum install -y devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
# 启用GCC7
scl enable devtoolset-7 bash
# 登录自动启用
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc​
# 安装GCC8
yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
# 启用GCC8
scl enable devtoolset-8 bash
# 登录自动启用
echo "source /opt/rh/devtoolset-8/enable" >> ~/.bashrc​​
# 安装GCC9
yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
# 启用GCC9
scl enable devtoolset-9 bash
# 登录自动启用
echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc​​

5. 检查是否生效

gcc --version​


Pre: No Post

Next: Linux 脚本记录 ping 的时间

21
Table of content