执行yum命令失败并提示“HTTP Error 404 -Not Found Trying other mirror”
免责申明:本文可能由社区贡献或涉及第三方产品信息,建议您访问社区或第三方产品的官方网站获取帮助与支持。第三方产品不在阿里云售后支持范围。本文仅供参考,阿里云不做任何暗示或其他形式的承诺。
问题描述
执行yum -y install XXX
、yum list
、yum search XXX
等从YUM仓库获取资源信息命令时,出现类似如下报错信息。
http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
或者出现URL中$releasever变量无法识别的报错,此报错您需要使用缺少centos-release软件包步骤解决问题。
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
问题原因
解决方案
CentOS 6/8操作系统不再维护
CentOS 6与CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 6/8的源地址内容已移除。当您在CentOS 6/8系统内继续使用默认配置的源地址时会发生报错。建议您先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?和CentOS 8 EOL如何切换源?。
YUM仓库配置问题
本节以CentOS 7.4系统版本的Base源为例进行介绍,其他系统及版本请参见阿里云官方镜像站。
- 登录异常实例,执行以下命令,备份异常的Base源文件。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 执行以下命令,下载并安装Base源。
说明:ECS实例需要能连接公网地址,才可以下载Base源。
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
- 确认可以正常使用
yum
相关命令即可。
配置了HTTP代理
- 登录异常实例,依次执行以下命令,确认能ping通,且80端口也能通。
ping mirrors.cloud.aliyuncs.com
telnet mirrors.cloud.aliyuncs.com 80 - 执行以下命令,查看YUM仓库能否正常访问。
curl http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/repomd.xml -v
系统显示类似如下,确认返回404状态码,且配置了HTTP代理。 - 执行以下命令,再次确认存在HTTP代理配置。
echo $http_proxy
系统显示类似如下。 - 您可以编辑
/etc/profile
文件,将HTTP代理配置删除,即删除文件中的http_proxy
内容,然后执行source /etc/profile
命令使配置生效,并退出当前会话窗口重新登录即可。
缺少centos-release软件包
您可以通过阿里云官方镜像站根据系统版本找到centos-release软件包下载并安装,命令如下所示。
说明:本文以CentOS7 64位操作系统为例进行介绍。
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/centos-release-7-7.1908.0.el7.centos.x86_64.rpm
rpm -ivh centos-release-7-7.1908.0.el7.centos.x86_64.rpm
适用于
- 云服务器ECS