centos下yum镜像源失效的问题及更换国内镜像源
centos下yum镜像源失效的问题想要在centos7虚拟机下安装个docker尝试,结果在配置完虚拟机网络之后使用 yum install docker 安装出错。错误信息是:cannot find a valid baseurl for repo base/7/x86_64排查了下发现网络配置没有问题(ping命令),应该是镜像源或者配置出了问题。进入到/etc/yum.repo.d...
centos下yum镜像源失效的问题
想要在centos7虚拟机下安装个docker尝试,结果在配置完虚拟机网络之后使用 yum install docker 安装出错。错误信息是:
cannot find a valid baseurl for repo base/7/x86_64
排查了下发现网络配置没有问题(ping命令),应该是镜像源或者配置出了问题。进入到/etc/yum.repo.d目录下查看文件:
cd /etc/yum.repos.d
ls
yum 是根据CentOS-Base.repo中的配置的url来进行请求下载的。之前尝试过原本的镜像源也是有点问题,所以这里将它替换为国内镜像源(163,阿里,搜狐等等都挺快的)。看看163的镜像源文件网站:
yum就是根据CentOS-Base.repo中的几个baseurl,从这里的目录下载的。例如我们想要更换成阿里的镜像源,可以进入/etc/yum.repos.d,先给原本的CentOS-Base.repo做个备份
mv CentOS-Base.repo CentOS-Base.repo.backup
下载 http://mirrors.aliyun.com/repo/ 下对应centos版本对应的repo文件,可以使用wget命令:
wget http://mirrors.aliyun.com/repo/Centos-7.repo
虚拟机也可以使用SSH secure,先下载到windows然后再拉到虚拟机上面。然后将下载的repo替换原来掉原来的CentOS-Base.repo
mv /etc/yum.repos.d/Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
清空yum缓存以及运行 yum makecache生成缓存
yun clean all
yum makecache
到这里会发现在生成缓存的时候出现错误,错误原因是在访问镜像源文件网站的一个xml配置文件的时候发生了404错误:
http://mirrors.163.com/centos/7/os/x86_64/repodata/repomd.xml: 404 Not Fount
一开始不知道是什么原因,然后上网找看到很多帖子说是repo里面一个$releasever变量的问题,说把里面url中的这个变量改成具体的centos 版本号就可以。但是日志里面打印出来的请求url已经是将变量解析成centos版本号的了,所以应该不是这个地方出现了问题。所以我就直接上镜像源网址找这个xml文件,发现它是可以访问的。
然后检查了一下请求发现是传输协议的问题。 在浏览器发现访问镜像源的某些文件必须是使用https协议才可以,http协议是无法访问的。
检查发现从网上下载的repo文件中的url都是使用http来访问这个xml的,所以在yum makecache的时候一直是404,而使用浏览器访问这个文件却不会出现问题。这样就简单了,将repo中的http都改为https就可以了。
下载正常。
更多推荐
所有评论(0)