问题描述
1、即使已经将CentOS-Base.repo内容 全部改为阿里云的镜像源仍然报错,甚至报错Could not retrieve mirrorlist
2、甚至不仅仅只用mirrorlist.centos.org,也可能使用了其他镜像源的地址
解决步骤
下面是一个完整的操作步骤
1、备份配置文件
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
2、替换为阿里云镜像源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3、清理缓存并重新生成缓存
yum clean all
yum makecache
4、检查镜像源配置生效情况
- 如果 yum makecache 成功执行,没有遇到问题,恭喜你略过了很多坑。
- 若出现 Could not retrieve mirrorlist 错误,说明CentOS-Base.repo文件没生效,可能有其他配置文件覆盖了我们的设置。
重点
5、排查镜像源配置
查找包含 mirrorlist.centos.org 的配置文件:
# 查看哪些配置文件有这个内容,具体内容是什么
grep -r "mirrorlist.centos.org" /etc/yum.repos.d/
# -r 展示文件和文件内容
# -rl 只展示文件名
解决:下面我们将这部分内容注释掉并且备份好配置文件
sed -i.bak 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
# -i 直接在文件修改
# -i.bak 在文件修改前先备份,后修改备份生成为文件名为 xxx.bak
6、进一步排查
如果问题仍未解决:
- 检查其他 .repo 文件中是否同时注释了;
- 是不是仍然有baseurl地址没有改彻底。
# 查询目前yum在用哪些镜像原地址,哪些是失败的
yum repolist base
# 将失败的镜像源地址使用“grep” 命令全局看一下,一一找出来,并针对性的进行修改保存
grep -r "XXXXXX" /etc/yum.repos.d/
如果 mirrorlist 存在错误,直接注释。
如果 baseurl 有问题,确保其值与CentOS-Base.repo中baseurl提供的地址。