你的位置:首页 > 互联网IT

Error: Failed to download metadata for repo 'appstream': Cannot prepare inte,centos Error: Failed to download metadata for repo 'AppStream'

系统:centos8

软件:appstream

功能:centos8无法安装


方法一

CentOS-8 - AppStream 46 B/s | 38 B 00:00

Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist


# cat /etc/redhat-release

CentOS Linux release 8.1.1911 (Core)

服务器是 CentOS

解决办法

自2022年1月31日起,CentOS团队从官方镜像中移除CentOS 8的所有包,但软件包仍在官方镜像上保留一段时间。现在被转移到https://vault.centos.org。如需继续运行旧CentOS 8,可以在/etc/yum.repos中更新repos.d,使用vault.centos.org代替mirror.centos.org


修改软件源

在/etc/yum.repos.d文件夹下有


CentOS-Base.repo 

CentOS-AppStream.repo 

CentOS-Extras.repo


修改

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=AppStream&infra=$infra

baseurl=http://vault.centos.org/$contentdir/$releasever/AppStream/$basearch/os/



保存

成功

QQ截图20220721211142.jpg Error: Failed to download metadata for repo 'appstream': Cannot prepare inte,centos Error: Failed to 互联网IT


-----------------------------------------------------------------------------------

方法二

使用Dockerfile时Error: Failed to download metadata for repo 'AppStream


跟着教程使用指令docker build -f /mydocker/Dockerfile -t mytomcat:1.1 .时出现了以下错误:

Failed to download metadata for repo 'AppStream'Error: Failed to download metadata for repo 'AppStream'


在网上找了很多教程大多一知半解,而且大多都是2-3年前的了,并且没有作用,经过一晚上的尝试终于解决了这个问题,在此记录一下,希望小伙伴们能愉快解决这个问题

激动人心的Successfully

但是由于途中经过了太多的尝试,不能完全确定究竟是哪个方法生了效便一并写在这里,下次再实验的时候加以测试,再来完善,如果有大佬也多谢指正。


方法一:修改源

1.检查网络是否联通

随便ping一个网站即可,例如:ping www.baidu.com


2.关闭防火墙

systemctl stop firewalld.service(我第一次实验的时候就是使用这个方法,但是没有进行这一步,再第二种方法之后又进行了这一步并重启docker 最后居然成功了)


3.修改软件源

在/etc/yum.repos.d文件夹下有


CentOS-Base.repo 

CentOS-AppStream.repo 

CentOS-Extras.repo


这三个文件,将三个文件中的mirrow注释掉,设置baseurl 为阿里源

试错的时候阿里源都加了几个.........







4.命令行下载阿里源

指令为:wget -O /etc/yum.repos.d/CentOS-Base.repo [http://mirrors.aliyun.com/repo/Centos-8.repo](http://mirrors.aliyun.com/repo/Centos-8.repo)(Centos8根据系统版本修改就好了,我的是CentOS8)


5.运行 yum makecache 生成缓存(或 yum clean all&&yum makecache )


6.重启Docker服务

service docker restart


方法二:下载ssh

yum install openssh openssh-server openssh-clients


没错就只下了个ssh,当时我也是非常怀疑,并且原帖使用此指令后出了错,而我没有出现,于是我就顺便把方法一的时候没关的防火墙关掉了,然后重启了一下Docker,然后就成功了。真是不可思议。

小伙伴们可以先按照方法一步不差的走一遍(不要学我跳过关防火墙),然后实验一下,如果不行的话再进行方法二。

方法二虽然看似简单,但是如果出错了处理很麻烦,所以优先使用方法一(而且个人感觉方法一的软件源才是问题的关键)


之后我再次实验后来更新的更准确一些。


----------------------------------------------------------------

方法三

大家都知道Centos8于2021年年底停止了服务,大家再在使用yum源安装时候,出现下面错误“错误:Failed to download metadata for repo ‘AppStream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist”


1、进入yum的repos目录


cd /etc/yum.repos.d/

1

2、修改所有的CentOS文件内容


sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*


sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

1

2

3

3、更新yum源为阿里镜像


wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo


yum clean all


yum makecache

1

2

3

4

5

4、yum安装测试是否可以yum安装


yum install wget –y

1

这个问题解决花了半个小时,越来越讨厌那些哔哔半天讲不到点上的了。教程能用就能用,不能用就是过期了,一些 debug 的文章非要绕来绕去绕来绕去。




参考地址:

https://www.jianshu.com/p/68c0e1b3424e

https://www.jianshu.com/p/79906aca03e0

https://blog.csdn.net/qq_575775600/article/details/125274121


  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。