一、问题原因剖析
- 网络连接存在问题:系统可能没办法访问互联网,或者 DNS 配置有误。
- DNS 服务器配置不正确:系统所使用的 DNS 服务器或许无法解析
mirrorlist.centos.org
。 - CentOS 镜像源配置有问题:部分镜像源在 CentOS 7 系统中可能已经失效。
- 系统未注册到订阅服务器:这会使某些 Red Hat 官方仓库的访问受到限制。
二、解决办法
1. 检查网络连接
首先,要确认系统能够正常访问互联网。可以尝试使用 ping
命令来测试:
ping www.baidu.com # 检查外网连通性
ping 8.8.8.8 # 检查是否能访问公共 DNS
要是无法 ping 通,就得检查网络接口的配置情况。
2. 配置 DNS 服务器
你可以临时或者永久地修改 DNS 服务器配置:
# 临时修改(重启后会失效)
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 114.114.114.114" >> /etc/resolv.conf
# 永久修改(以 NetworkManager 为例)
nmcli con mod "连接名称" ipv4.dns "8.8.8.8 114.114.114.114"
nmcli con up "连接名称"
3. 替换镜像源配置
由于 CentOS 官方仓库已经停止维护,建议将其替换为阿里云或者清华大学的镜像源:
# 备份原有的 repo 文件
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
# 下载阿里云的 CentOS 7 镜像源配置
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
# 添加 SCLo 仓库
cat > /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo << EOF
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0
enabled=1
EOF
# 清除缓存并重建
yum clean all
yum makecache
三、安装 devtoolset-8
完成上述配置之后,再尝试安装 devtoolset-8:
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc*
# 启用 devtoolset-8
scl enable devtoolset-8 bash
# 检查 gcc 版本
gcc --version