使用yum安装软件出现“The requested URL returned error: 404”解决方法
使用之前阿里云镜像安装的yum,可能是安装新软件还是怎了的,忽然yum就不能用了,出现The requested URL returned error: 404
的错误提示。
没辙,自己也不是专家,上网搜吧,很多教程里都提到了重新更新yum源,所以先试试更新yum源。
国内有两个主流的yum源:
网易:http://mirrors.163.com/.help/
阿里开源镜像:http://mirrors.aliyun.com/repo/
我的系统镜像用的是centos 6.3,所以选择列表中的centos 6即可:
http://mirrors.163.com/.help/CentOS6-Base-163.repo
http://mirrors.aliyun.com/repo/Centos-6.repo
centos系统上默认的yum源配置地址为/etc/yum.repos.d/CentOS-Base.repo
先备份一下(好习惯)
mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/
更新指令可以为
wget http://mirrors.aliyun.com/repo/Centos-6.repo /etc/yum.repos.d/CentOS-Base.repo
或者curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
清除系统yum缓存并生成新的yum缓存
yum clean all
yum makecache
在最后一步,yum makecache
出错,跟一开始的错误一致,尝试更新软件yum install vim
报同样的错误。
好吧,得承认,错误并不在于外部,方向错了。
再仔细看一下错误提示信息,里面有提到$releasever 变量未定义什么的。把错误信息放到百度里搜索,找到新的修改错误思路,也就是《Centos 在用yum时的 $releasever问题》。
按照《Centos 在用yum时的 $releasever问题》的解释是因为$releasever变量没有定义,它获取版本号是从系统 /etc/centos-release中获取的,或者说跟这个有关(rpm -q centos-release
获取),而centos-release没有安装,yum此时无法使用,按照这种情况,只能先修改$releasever,让yum正常使用,之后再去更新centos-release。
将/etc/yum.repos.d/CentOS-Base.repo
文件内所有$releasever变量都改成centos系统版本号(我的是6),执行yum update
,yum makecache
,yum install centos-release
,后面都是成功的。
因为当前rpm -q centos-release
是可以获取到$releasever的值,所以手动去把系统版本号(我的是6)再改成变量$releasever,再执行yum 安装指令也是没有问题的。或者再次更新yum源,都ok。
参考:
Centos 在用yum时的 $releasever问题
使用yum安装软件出现“The requested URL returned error: 404”解决方法
CentOS7系统配置国内yum源和epel源