前言
Centos7 使用 yum 命令时,解析不了 yum 源,出现报错:
分析
报错原因分析
机子解析不了 yum 源,原因有三种情况:
1、机子无法上网!请检查好网络配置,确认是可以上网了再看第二种情况。简单点就是 ping 一个公网的 IP(百度搜索 ip,即可返回公共的 ip),如 ping 116.234.58.239 如果 ping 不通,就是上不了网。如果能 ping 通,那就是第二种情况了。
在 Centos7 上输入 ping 116.234.58.239
,但是无法返回正确信息。相反,在 Dos 窗口上输入该命令,则返回正确信息。
2、DNS 配置有问题!检验 DNS 配置是否正常可以这样做:nslookup www.baidu.com
如果是显示无法连接无法解析之类的就是有问题了,要么是上不了网,要么是 DNS 有问题被染了,确定能上网就换个 DNS。
3、机子能上网,DNS 配置也没有问题,但还是无法解析 yum 源,建议换一个 yum 源再试试。
网卡配置
1、查看网卡
[root@localhost~]# ip addr
返回结果为:
通过 ip 命令加参数 addr 则是查看当前网卡的配置信息, 从下图中可以看出, 当前系统的 ens33 网卡并没有 ipv4 及 ipv6, 没有 ip地址 则只能说明一个问题, 当前 linux 系统是没有办法上网的, lo 这块网卡每一个系统中都会有, 这个称之为 回环网卡
。
当前系统只能通过 ping 命令 ping 通 回环网卡 也就是 127.0.0.1 这个 ip地址。
2、修改网络信息配置文件
CentOS7 默认网卡设备文件存放于 /etc/sysconfig/network-scripts/
。
[root@db06~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
通过 cat 查看 CentOS7 最小化安装默认网卡设备配置信息, 如下:
TYPE=Ethernet # 网卡类型:为以太网
PROXY_METHOD=none # 代理方式:关闭状态
BROWSER_ONLY=no # 只是浏览器:否
BOOTPROTO=dhcp # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议]
DEFROUTE=yes # 默认路由:是, 不明白的可以百度关键词 `默认路由`
IPV4_FAILURE_FATAL=no # 是不开启IPV4致命错误检测:否
IPV6INIT=yes # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6]
IPV6_AUTOCONF=yes # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6]
IPV6_DEFROUTE=yes # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6]
IPV6_FAILURE_FATAL=no # 是不开启IPV6致命错误检测:否
IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略]
NAME=ens33 # 网卡物理设备名称
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用
DEVICE=ens33 # 网卡设备名称, 必须和 `NAME` 值一样
ONBOOT=no # 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`
使用 vi 文本编辑器打开网卡设备文件,进行修改。
修改结果如下:
其中 ONBOOT=yes
,设置网卡启动方式为 开机启动 并且可以通过系统服务管理器 systemctl 控制网卡。IPADDR 的设定主要是根据 本机 IP 决定的,比如说在 Dos 窗口输入 ipconfig 命令,得到以下结果:
IPv4 地址为:192.168.21.211,默认网关为:192.168.21.1,则可以将 IPADDR 设定为:192.168.21.100,GATEWAY:192.168.21.1。因为 IP 是唯一的,所以不要将这两者设为一样。
修改完毕后,按 esc 进入到 命令模式, 按住 shift + : 输入 :, 接着再输入 wq, w 是 保存, q 就是告退
。最后重启网卡。
[root@db06~]# systemctl restart network
验证网卡配置
1、ip addr
查看当前网卡信息
可以看到 ens33 这块网卡, IP/网关, 还有 ipv6 这个现阶段还暂时用不到。
2、ping 内网其他主机
简单点就是说 ping 本机的 ip 地址(Windos 系统可以在 Dos 窗口进行查看)。
3、ping 公网 ip
4、ping 外网其他主机
[root@db06~]# ping www.baidu.com
或者
[root@db06~]# ping baidu.com
如果出现上图那样的情况,这是因为当前 CentOS 还解析不了输入的 baidu.com 这个字符串, 我们知道它是百度的域名, 但它就是不知道这是百度域名, 它解析 baidu.com 域名到底是对应哪一 IP 地址, 那好了, 去 Windows 下 ping 一下 baidu.com 这个域名, 给它加到 CentOS 系统的 hosts 文件。
编辑 /etc/hosts
文件,首先打开 /etc/hosts
文件。
[root@db06~]# vi /etc/hosts
将百度的 IP 地址与域名加入到该文件中,保存退出。
[root@db06~]# ping baidu.com
其他问题
使用 yum 命令时出错,Could not retrieve mirrorlist
如果使用 yum 命令总是报错,提示 Could not retrieve mirrorlist 类似的错误。
vi /etc/resolv.conf
在该文件中添加如下内容,保存退出即可。不需要其他操作即可使用 yum 命令。
#generated by NetworkManager
nameserver 8.8.8.8
search localdomain
使用 yum groupinstall "Desktop" 报错
如图所示:
由于 yum groupinstall
命令已经不适用了,需要更换为:yum groups install
。
[root@db06~]# yum groups install "X Window System"
本文作者为hresh,转载请注明。