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
admin