CentOS7安装docker时,yum命令报错。Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=

问题描述

当我需要在centOS7中安装docker时,会使用到yum命令,例如sudo yum install -y yum-utils。只要使用到yum命令时,就会报出如下错误:

[root@localhost ~]# yum install wget
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误”

yum命令报错Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock。从这命令可以看出来,http://mirrorlist.centos.org/挂掉了,使用魔法去访问一下,发现服务一直报403错误,这是服务器的问题,可以理解为挂了。因为centOS在今年6.30后就不再维护了。

解决方案

	既然国外的yum源不好用了,那就替换为国内的,我使用的是阿里的。

目标

	更改 CentOS 7 系统的软件仓库源,从官方的 CentOS 镜像源切换到阿里云的 CentOS 7 镜像源,以获得更快的下载速度和更好的稳定性。

解决步骤

步骤一:前置准备

网络通畅

	由于我使用的是vmware虚拟机,所以以此为基础进行展示。

要求:要能ping通百度。
[root@localhost ~]# ping baidu.com
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=128 time=51.1 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=128 time=47.7 ms
^C
— baidu.com ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1014ms
rtt min/avg/max/mdev = 47.715/49.424/51.134/1.723 ms
[root@localhost ~]#

【注意】此处如果不通,可以查看网卡配置。

		命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=2b801726-9e4f-43fc-b72f-1044cf32bf5a
DEVICE=ens33
ONBOOT=yes

【注意】此处后面也可以带"",例如BOOTPROTO=“dhcp”

这命令的关键点在于:
BOOTPROTO=“dhcp”代表动态获取ip地址,也就是说,虚拟机的ip地址会自动刷新,导致ip地址发生改变。

ONBOOT=yes 代表网卡随开机而启动,不然开机后网卡没有自启,会导致没网络。

**【TODO】**这里有个疑问:
当我把BOOTPROTO=“static”后,并且在最后补上IPADDR=192.168.119.128,网络就会终端,ping不通百度。哪怕我把子网掩码,网关,DNS都加上,依旧如此。

	如果有谁能够解决,欢迎留言,或者留下帖子链接。我知道这是可以解决的,因为我之前这么弄过,是没问题的。

步骤二:对系统本身的yum源进行备份

/etc/yum.repos.d/ 文件下存放着系统的cent源文件,先来查看一下

/etc/yum.repos.d/
打开看一下最核心的CentOS-Base.repo文件
CentOS-Base.repo
可以看到,万恶之源就在开头的两行:
mirrorlist=http://mirrorlist.centos.org/?release=KaTeX parse error: Expected 'EOF', got '&' at position 11: releasever&̲arch=basearch&repo=os&infra=KaTeX parse error: Expected 'EOF', got '#' at position 7: infra #̲baseurl=http://…releasever/os/$basearch/

mirrorlist顾名思义,是一个列表,是一个动态的镜像列表,提供了多个镜像由系统调用。
baseurl后是一个静态的 URL 。

我们希望以后只用阿里的镜像yum源,因此,要修改的就是baseurl,而必须注释掉mirrorlist。
因此,先备份一下,虽然并不会用到,因为请求是不通的。
命令:
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
备份后
【注意】注意备份的名称中OS的大小写,与下面命令中名称的大小写做区分。

步骤三:下载阿里云 CentOS 7 镜像源配置文件

	命令:sudo curl -o /etc/yum.repos.d/Centos-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
	
	【注意】:这里只能使用curl,或者vi直接修改,不能使用wget,因为wget也需要yum来安装,现在的问题就是yum命令无法使用。

基于面前说的替换,我们就不手动vi替换了,而是使用curl直接下载阿里的完整镜像进行替换。
替换后
【注意】第一个才是我们阿里的,下面的是系统自带的。
阿里的yum源
看到没有,阿里的很完善。

步骤四:删除除阿里及备份外的所有cent源文件

如果你以为这就换源完了,那就错了。
我们试一下,随便执行一个yum命令。
在这里插入图片描述
看到没,依旧会报错。
明明切换了yum源,为什么还会报错呢?

其实我们回头再看上一步的ls,会发现文件夹中有很多CentOS-开头的文件,它们其实是把阿里镜像中的东西按照功能给切分了。虽然我们替换了base文件,但yum命令还是会使用到其他的文件,比如update,下载,保存等,都会使用到系统自带的源,因此依旧会出现无法连接的问题。

最简单的办法,就是删除所有的自带的源,只保留阿里的,和备份源,因为备份的名字被改了,因此系统不会调用到。

	命令:find . -maxdepth 1 -type f -name 'CentOS-*' ! -name 'CentOS-Base.repo.backup' -exec rm {} \;

删除后的文件夹

步骤五:清除旧的 YUM 缓存

		命令:sudo yum clean all

目的是清除 YUM 的旧缓存,确保在接下来的步骤中使用的都是最新的仓库信息

步骤六:创建新的 YUM 缓存

		命令:sudo yum makecache

这一步是为了让 YUM 根据新的仓库配置文件创建新的缓存,这样在执行 yum update 或 yum install 命令时,系统会从阿里云的镜像源下载软件包。
在这里插入图片描述

步骤七:验证

在这里插入图片描述
安装没有问题,成功解决!

后记

这个小毛病对于老手来说,只是基础。但对于新手来说,由于涉及到网卡,网络,然后又是很基础的yum命令无法使用。导致很多网上的教程都无法使用,因为网上教程的各种操作,基本都是基于yum命令的。

而且这个问题,很容易引发更多的问题。比如安装docker环境发现不行后,就开始各种操作,又是查网络网卡,又是更新wget,结果发现越错越多,越搞问题越深,最终导致重装系统等。

我也是半路出身的小白,很多都是似懂非懂,特别是运维需要了解的计算机硬件基础这块,如果有说的不明不白的地方,希望多多指正。

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值