如何将OpenEuler 20.03构建的zabbix7.0 rpm包制作成?

摘要:一、说明 为什么要自己构建? 由于centos从7版本之后改为stream,工作环境由centos转向OpenEuler。zabbix官网上有各大主流操作系统预编译的rpm包,但是Openeuler相对小众,自然没有制作好的包。即使是cen
一、说明 为什么要自己构建? 由于centos从7版本之后改为stream,工作环境由centos转向OpenEuler。zabbix官网上有各大主流操作系统预编译的rpm包,但是Openeuler相对小众,自然没有制作好的包。即使是centos系统,7版本也过于陈旧了,从zabbix 6.0开始,centos 7已经不提供server的rpm包了,只剩下proxy和agent,到了7.0版本,连proxy都没有了。学会自己创建rpm包,以备操作系统环境发生改变是非常有必要的。 为什么不直接源代码编译 由于采用的是sever-proxy-agent的多层架构,server只有一台,但是proxy有几十台,agent更是上千,每一台都用源代码编译工作量大大增加。 源代码编译的软件,在一些例如配置文件、启停命令上与rpm版本有差异,如果混布增加了运维复杂度。 有没有预编译好的rpm包 在OpenEuler的官方社区的软件中心,有社区成员自行构建的rpm包,可以尝试找找有无符合自己要求的版本。 二、准备工作 2.1 添加repo源 如果OpenEuler缺少默认的repo源,需要自己添加 在/etc/yum.repos.d/openEuler_x86_64.repo中添加如下内容: [OS] name=openEuler-$releasever - OS baseurl=https://repo.openeuler.openatom.cn/openEuler-20.03-LTS-SP4/OS/$basearch/ enabled=1 gpgcheck=1 gpgkey=https://repo.openeuler.openatom.cn/openEuler-20.03-LTS-SP4/OS/$basearch/RPM-GPG-KEY-openEuler 另外再添加everything的源,可以提供更多的包。 dnf config-manager --add-repo https://repo.openeuler.org/openEuler-20.03-LTS/everything/x86_64 使用dnf clean all && dnf makecache命令更新。 2.2 准备构建rpm包环境 之前的文章里已经介绍了构建rpm包的基本方法,这里不再赘述。root用户下运行命令如下: dnf install -y rpm-build dnf install -y rpmdevtools rpmdev-setuptree 下载srpm包( http://repo.zabbix.com/zabbix/7.0/rhel/8/SRPMS/zabbix-7.0.23-release1.el8.src.rpm ) ,这里以rhel8版本的srpm文件为例: rpm -ivh zabbix-7.0.23-release1.el8.src.rpm 此时,在/root/rpmbuild目录下的SOURCES目录下会产生源代码压缩包、补丁和配置文件,SPECS目录会产生spec文件。但是此spec文件是Centos8版本的,与OpenEuler不完全契合,需要修改一下。
阅读全文