执行yum命令失败并提示“HTTP Error 404 -Not Found Trying other mirror”

免责申明:本文可能由社区贡献或涉及第三方产品信息,建议您访问社区或第三方产品的官方网站获取帮助与支持。第三方产品不在阿里云售后支持范围。本文仅供参考,阿里云不做任何暗示或其他形式的承诺。

问题描述

执行yum -y install XXXyum listyum 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操作系统不再维护

CentOS 6操作系统版本结束了生命周期(EOL),即Linux社区已不再维护该操作系统版本,建议您更换为CentOS 7及以上的系统版本,如何更换操作系统请参见更换操作系统

YUM仓库配置问题

本节以CentOS 7.4系统版本的Base源为例进行介绍,其他系统及版本请参见阿里云官方镜像站

  1. 登录异常实例,执行以下命令,备份异常的Base源文件。
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. 执行以下命令,下载并安装Base源。
    说明:ECS实例需要能连接公网地址,才可以下载Base源。
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  3. 确认可以正常使用yum相关命令即可。

配置了HTTP代理

  1. 登录异常实例,依次执行以下命令,确认能ping通,且80端口也能通。
    ping mirrors.cloud.aliyuncs.com
    telnet mirrors.cloud.aliyuncs.com 80
  2. 执行以下命令,查看YUM仓库能否正常访问。
    curl http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/repomd.xml -v
    系统显示类似如下,确认返回404状态码,且配置了HTTP代理。
  3. 执行以下命令,再次确认存在HTTP代理配置。
    echo $http_proxy
    系统显示类似如下。
  4. 您可以编辑/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