一、背景
linux Redhat 6.3 官方早已经不在更新维护,软件源维护难度高,在安装软件包的的时候就会有这样那样的系统软件包不支持的问题。本文记录下在Redhat 6.3下安装zabbix-agent软件包,yum源无法使用的问题。
首先明确一个问题:软件版本怎么选择,依据是什么?
考虑因素1:zabbix官方版本支持文档
根据Zabbix的官方文档,Zabbix 7.0的最低要求是Red Hat 8或7,由于zabbix 7.0的依赖包的版本OpenSSL 1.0.1等,Red Hat 6系统都无法达到要求,所以在选择zabbix-agent客户端的时候需要找到最高兼容版本。
考虑因素2:操作系统Red Hat 6本身安装包中软件包的版本支持。
综合考虑:正确的做法是降级Zabbix版本到支持el6的版本,比如Zabbix 4.2或3.4,因为这些版本明确支持Red Hat 6系统。
二、问题分析解决过程分析
1.在Redhat 6.3安装zabbix-agent客户端 4.2版本,目前yum源未系统自带的源rhel-source.repo,出现如下报错

2.修改YUM源rhel-source.repo的内容如下关闭该YUM源仓库:

3.继续执行yum安装命令报错如下:

4.增加yum源仓库zabbix.repo,内容如下

5.继续执行yum安装命令报错如下,提示缺失特定版本的系统软件依赖包:缺少几个OpenSSL和Zlib的库文件,比如libcrypto.so.10、libssl.so.10、libz.so.1这些。RedHat 6默认的OpenSSL版本可能比较低,或者仓库里的包不对,所以得先处理依赖

由于由于 RedHat 6 官方仓库需订阅且包老旧,CentOS 6 与 RHEL 6 二进制兼容,可通过 CentOS 6 的归档仓库(vault.centos.org)获取缺失的依赖包。
6.于是增加yum源配置CentOS-Base.repo来先将依赖安装成功,选择操作系统版本为centos 6.3,内容如下:

7.继续执行yum安装命令报错如下:
提示核心错误是仓库路径失效+SSL连接失败,具体分析如下:
仓库路径无效:
CentOS 6.3已归档至vault.centos.org/6.10/(6系列最后一个版本),6.3子目录已被移除或无法访问,导致repomd.xml无法下载。
SSL连接失败:
增加参数sslverify=0

8.于是接下来修正仓库路径(关键)
将CentOS-Base.repo的baseurl改为CentOS 6.10归档路径(6系列最新兼容版本):

继续执行yum安装命令报错如下:


9.继续修改CentOS-Base.repo的baseurl如下

继续执行yum安装命令报错如下:

10.解决步骤9的报错:

cat /etc/redhat-release
ll /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

yum install -y openssl zlib --nogpgcheck
yum install -y zabbix-agent --nogpgcheck

10.至此安装成功,启动服务
service zabbix-agent start

三.其他报错
1.报错一:解决方案:修改yum源中的链接支持协议https为http即可

2.报错二、
提示错误: ksh-20100621-16.el6.x86_64 has installed conflicts pdksh: pdksh-5.2.14-36.el5.x86_64表示系统存在跨版本(el6/el5)的冲突包,需先清理:
分析:由于 Red Hat 6及以上系统 已用 ksh(Korn Shell) 替代pdksh(pdksh不再积极维护),且ksh与EL6系统完全兼容,应卸载EL5版本的pdksh:
yum remove pdksh-5.2.14-36.el5.x86_64 -y