背景
尝试在虚拟机中安装docker,在进行yum update
时报错
后来发现不仅yum update
,尝试任何跟yum有关的命令都报错,例如yum list
我的centos7配置如下:
[root@localhost mayxue]# uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
温馨提示:参考此篇博客的解决方法之前请仔细对比报错信息是否一致!
先贴出来报错信息如下:
[root@localhost mayxue]# yum list
已加载插件:fastestmirror, langpacks
base | 3.6 kB 00:00
docker-ce-stable | 3.5 kB 00:00
https://yum.dockerproject.org/repo/main/centos/7/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: yum.dockerproject.org; 未知的名称或服务"
正在尝试其它镜像。
One of the configured repositories failed (Docker Repository),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=dockerrepo ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable dockerrepo
or
subscription-manager repos --disable=dockerrepo
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=dockerrepo.skip_if_unavailable=true
failure: repodata/repomd.xml from dockerrepo: [Errno 256] No more mirrors to try.
https://yum.dockerproject.org/repo/main/centos/7/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: yum.dockerproject.org; 未知的名称或服务"
解决方案
在采用本方案之前首先注意以下几点是否有问题
- 虚拟机是否联网。在虚拟机中
ping baidu.com
是否能ping通 - 是否是在root用户下操作
如果联网了,并且是在root用户下操作还是出现了上述报错,那么采取接下来的解决方案
删除/etc/yum.repos.d 目录下的所有内容,重新下载国内的源repo文件即可解决问题
rm -rf /etc/yum.repos.d/*.repo
然后下载
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
测试一下:输入yum update
(期间要选择确认,输入 y 即可)
注:输入y有出现缺失秘钥等,又重复了一次
yum update
,最后更新成功,如下图
更新成功!