本文介绍在Linux系统的ECS实例中执行yum命令失败,提示“HTTP Error 404 -Not Found Trying other mirror”错误时的问题原因和解决方案。
问题描述
在Linux系统的ECS实例中执行yum命令(如yum -y install XXX
、yum list
、yum search XXX
等)失败,出现类似如下错误信息。
http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Trying other mirror.
问题原因
出现该问题可能有以下原因:
CentOS 6/8的源地址内容已移除:CentOS 6与CentOS 8操作系统结束了生命周期(EOL),源地址内容已移除。您可以参考切换CentOS 6/8的源地址修复该问题。
YUM仓库(repository)配置问题,导致无法正常解析,您可以参考将CentOS默认Base源更换为阿里Base源修复该问题。
环境变量
/etc/profile
文件中配置了HTTP代理,导致无法正常解析,您可以参考修改环境变量配置文件/etc/profile修复该问题。缺少centos-release软件包,导致URL中
$releasever
变量无法正常解析,您可以参考安装centos-release软件包修复该问题。
解决方案
切换CentOS 6/8的源地址
CentOS 6与CentOS 8操作系统版本结束了生命周期(EOL),Linux社区已不再维护该操作系统版本。按照社区规则,CentOS 6/8的源地址内容已移除。当您在CentOS 6/8系统内继续使用默认配置的源地址时会发生报错。建议您先切换CentOS 6/8的源地址,然后再进行操作。具体操作,请参见CentOS 6 EOL如何切换源?和CentOS 8 EOL如何切换源?。
将CentOS默认Base源更换为阿里Base源
本节以CentOS 7.4系统版本的Base源为例进行介绍,其他系统及版本请参见阿里云官方镜像站。
远程连接ECS实例。
具体操作,请参见连接方式概述。
执行以下命令,备份异常的Base源文件。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
执行以下命令,下载并安装Base源。
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
重新执行
yum
相关命令,确保可以正常使用。
修改环境变量配置文件/etc/profile
远程连接ECS实例。
具体操作,请参见连接方式概述。
依次执行如下命令,确认能ping通,且80端口也能通。
若不能连通,说明可能是网络问题,请排查网络后重试。
若可以正常ping通,请继续执行步骤。
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代理。
修改环境变量文件
/etc/profile
。执行如下命令,打开环境变文件
/etc/profile
。vim /etc/profile
按
i
进入编辑模式,在HTTP代理前加#
注释该配置或根据需要修改代理。编辑完成后,按
Esc
键,并输入:wq
保存退出文件。执行如下命令,使环境变量配置生效。
source /etc/profile
重新执行
yum
相关命令,确保可以正常使用。
安装centos-release软件包
本节以安装CentOS 7.4系统版本的centos-release软件包为例进行介绍,其他系统及版本请参见阿里云官方镜像站。
远程连接ECS实例。
具体操作,请参见连接方式概述。
下载并安装centos-release软件包。
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/centos-release-7-9.2009.0.el7.centos.x86_64.rpm rpm -ivh centos-release-7-9.2009.0.el7.centos.x86_64.rpm
重新执行
yum
相关命令,确保可以正常使用。