背景:我使用yum方式安装软件时,比如zabbix这种软件,我们在安装时一般都是直接到zabbix官网,按照官方的步骤进行安装,但是有一个问题,官方的服务器不在国内,时常会在安装时导致超时报错。此时解决思路就因该是将官方源替换成国内的镜像源,例如阿里云、163的镜像源。要点就是网络问题!网络问题!网络问题!
注意安装zabbix时也要选择阿里云的镜像repo,地址如下:
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
报错信息:
安装 3 软件包 (+7 依赖软件包) 总计:7.2 M 总下载量:5.8 M 安装大小:29 M Is this ok [y/d/N]: y Downloading packages: No Presto metadata available for zabbix zabbix-server-mysql-4.4.6-1.el FAILED 6 kB 00:01:00 ETA http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-server-mysql-4.4.6-1.el7.x86_64.rpm: [Errno 14] curl#18 - "transfer closed with 2193329 bytes remaining to read" 正在尝试其它镜像。 zabbix-agent-4.4.6-1.el7.x86_6 FAILED 3 kB 01:07:08 ETA http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.6-1.el7.x86_64.rpm: [Errno 12] Timeout on http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.6-1.el7.x86_64.rpm: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds') 正在尝试其它镜像。 zabbix-web-4.4.6-1.el7.noarch. FAILED 0 kB 00:04:53 ETA http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-web-4.4.6-1.el7.noarch.rpm: [Errno 14] curl#18 - "transfer closed with 2625420 bytes remaining to read" 正在尝试其它镜像。 zabbix-agent-4.4.6-1.el7.x86_6 FAILED 6 kB 00:09:43 ETA http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.6-1.el7.x86_64.rpm: [Errno 14] curl#18 - "transfer closed with 83410 bytes remaining to read" 正在尝试其它镜像。 Error downloading packages: zabbix-web-4.4.6-1.el7.noarch: [Errno 256] No more mirrors to try. zabbix-server-mysql-4.4.6-1.el7.x86_64: [Errno 256] No more mirrors to try. zabbix-agent-4.4.6-1.el7.x86_64: [Errno 256] No more mirrors to try.
解决方案大致有三种:
一、更新yum
yum clean all
yum makecache
yum update -y
二、若不行,可能是因为DNS不稳定吧,因为yum安装时会从三个”repo源“(base,extras,updates)随机获取地址
(1)编辑网络配置:vi /etc/sysconfig/network-scripts/ifcfg-eth0
在本地网关DNS1下,添加aliyun网关 DNS2=223.5.5.5(可以理解为:将base,updates的“repo源”换为aliyun的)
重启网络服务:service network restart
(2)上步骤若还不行,请继续以下步骤(换yum源,可以理解为上一步的plus,再将extras换为aliyun的源)
先备份老源:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
CentOS7系统:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
具体方法参考阿里云官方:https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11iDH0bA
(3)刷新并生成缓存
yum clean all
yum makecache
三、分析总结法
首先该问题的出现是由于网络的震荡导致,这是重点。
(1)将源更换成阿里云的官方源,步骤参考如上
(2)同时将zabbix的官方源更换成阿里云里面的zabbix镜像源,因为zabbix官方源根本网络不通,因为国家防火墙的拦截,导致网络不通。
这是阿里源的zabbix镜像地址: https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/
修改系统中早期生成的zabbix.repo文件,如下:主要是把baseurl替换成阿里云的zabbix镜像地址即可。
修改完了记得,清理再重组:yum clean all yum makecache
[zabbix] name=aliyun - zabbix - $basearch baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/$basearch/ enabled=1 gpgcheck=0
如图示,国内的zabbix镜像源网络是通的,所以此时可以正常安装zabbix,问题得到解决。
验证:如图示,zabbix-agent已经可以正常安装