【Docker】配置CentOS容器时出现 Error Failed to download metadata for repo 'appstream' Cannot prepare internal mirrorlist | 转载
本站经常搬运一些其他博主文章,主要是为了持久化访问。避免日后他人删文or原文无法访问;所有搬运的文章都会写明原文地址,并且不会展示本站的copyright_info
下文所出现的场景,是我在linux上使用docker安装centos容器时出现的!
✨在学习使用 docker 技术过程中,基于 centos 镜像自定义新的镜像,其中基础镜像 centos 需要提前安装好 vim 和 net-tools,然而在刚开始通过 yum -y install vim
安装 vim 时,便出现了错误提示信息:
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
✨上面的报错信息意思是,从仓库 ‘appstream’ 下载元数据失败:由于镜像列表中没有 URL,不能准备内部镜像列表。
问题分析
- ✨第一种可能的情况便是网络连接问题。检查是否可以连接外部网络,可以使用
ping baidu.com
查看是否有丢包情况。如果丢包,则进一步检查网络连接是否正常;如果没有丢包,继续阅读下文. - ✨那么第二种情况,便是 CentOS 已经停止维护的问题。2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS Stream 项目,CentOS Linux 8 作为 RHEL 8 的复刻版本,生命周期缩短,于 2021 年 12 月 31 日停止更新并停止维护(EOL);
- 更多的信息可以查看 CentOS 官方公告。如果需要更新 CentOS,需要将镜像从 mirror.centos.org 更改为 vault.centos.org
那么针对上面提到的第二种情况,给出的解决方法如下
🔔 首先,进入到 yum 的 repos 目录
1 | cd /etc/yum.repos.d/ |
🔔 其次,修改 centos 文件内容
1 | sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* |
🔔 然后,生成缓存更新(第一次更新,速度稍微有点慢,耐心等待两分钟左右)
1 | yum clean all |
🔔 最后,运行 yum update 并重新安装 vim
1 | yum update -y |
🎉至此,针对第二种情况出现的问题成功解决!
1 | 原文作者:ReadThroughLife |
2024 问题更新
慕雪于24.01.22重新安装centos8的时候,实测上述办法配置后,yum makecache
无法执行,依旧会出现错误
1 | ## yum clean all && yum makecache |
又找了几个教程
- CentOS 执行yum命令报错【错误:为仓库 ‘appstream‘ 下载元数据失败: …】_错误:为仓库 ‘appstream’ 下载元数据失败 : cannot prepare intern-CSDN博客
- 完美解决CentOS8 yum安装AppStream报错,更新yum后无法makecache的问题
但是依旧没有解决我的问题!修改镜像源后还是很多软件都无法安装。
第二天起床又试了试,ok了,估计是网络波动没办法连上服务器。
评论