zabbix server/agent源码编译成rpm包(通用版-小白教程)

2024-02-05 21:36

本文主要是介绍zabbix server/agent源码编译成rpm包(通用版-小白教程),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

工作环境需要用到很多信创的操作系统,zabbix agent2的官方没有现成的包可用,网上巴拉了一下找到zabbix agent2通用版编译成rpm包的方法

思路:假如当你有一批ky10_x86的机器需要配套的zabbix agent的rpm包,那就找一台ky10_x86安装src.rpm,找到spec文件修改一下,rpmbuild编译zabbix.spec成rpm包,最后安装编译好的rpm包就行,

1.工作准备

  • 操作系统:麒麟10(ky10_x84)
  • zabbix agent:使用官网的src.rpm包来用。我用的zabbix reposity里面的zabbix-7.0.0-alpha8.release1.el9.src.rpm
    • 什么是src.rpm包:src.rpm是指源码包(Source RPM),是一种用于在Linux系统上构建软件包的格式。它是RPM软件包管理系统的一部分,包含软件的源代码、软件包的说明和构建脚本。使用src.rpm可以使开发者和软件包的维护者更容易地修改和重新构建软件包。
      通常,src.rpm文件包含软件的源代码和.spec文件,.spec文件包含软件构建的详细说明和指令,以及软件包的元数据(如版本号、构建时间等)。使用RPM打包工具,可以将src.rpm文件构建为二进制RPM软件包,以便在Linux系统上进行安装和使用。
  • 编译工具:rpm-build。(yum install rpm-build一下就行)
    • rpmbuild命令用于创建rpm的二进制软件包和源码软件包,其参数解释:
      • -bp 只作准备 (解压与打补丁)
      • -bc 准备并编译
      • -bi 编译并安装
      • -bl 检验文件是否齐全
      • -ba 编译后做成*.rpm和src.rpm
      • -bb 编译后做成*.rpm
      • -bs 只做成*.src.rpm

2.源码编译

(1)下载、安装zabbix 的src.rpm包

  • 去官网下载zabbix 的src.rpm包,然后上传到你的操作系统(放在任意位置都可).
    • 我下载的是 zabbix-7.0.0-alpha8.release1.el9.src.rpm
  • cd 转到zabbix-7.0.0-alpha8.release1.el9.src.rpm所在的目录下进行rpm安装:(遇到下一张图片的告警不用理会)
rpm -ivh zabbix-7.0.0-alpha8.release1.el9.src.rpm

在这里插入图片描述

虽然zabbix-7.0.0-alpha8.release1.el9.src.rpm随意放在任何的一个目录下,但是rpm -ivh后会在root目录下生成一个rpmbuild文件夹,文件夹下有SPECS和SOURCES文件夹。SPECS文件夹中有一个zabbix.spec文件。SOURCES文件下有很多文件:只需要关注生成的zabbix-7.0.0alpha8.tar.gz文件(第二步会讲解)
在这里插入图片描述

  • 待会编译成rpm会产生几个包,先在这儿解释一下各个包的作用:
    • SOURCES:存放tar.gz包
    • BUILD:存放tar.gz解压的文件
    • BUILDROOT:rpm包的临时安装文件,放置执行文件和操作文档
    • RPMS:存放生成的rpm文件
    • SRPMS:存放生成的src.rpm文件
    • SPECS:存放spec文件

(2)编辑zabbix.spec

  • 安装编译的工具
yum install -i rpm-build
  • 转到spec文件所在目录
cd /root/rpmbuild/SPECS
  • 编辑zabbix.spec文件
vim zabbix.spec

着重改一个地方:文件开头的name和version。因为编译时系统自动会去相应的文件目录找“name-version”格式的文件夹,没有该文件夹就会报错。因为默认的spec文件里面的操作是直接解压“(1)下载、安装zabbix 的src.rpm包”这一步得到的SOURCES文件夹下的zabbix-7.0.0alpha8.tar.gz文件得到zabbix-7.0.0alpha8文件夹。

所以zabbix.spec中:name就应该是zabbix,version就应该是7.0.0alpha8。如下图所示
在这里插入图片描述

(3)编译zabbix.spec文件构建rpm包

  • 先去往SPECS文件夹下,直接运行命令开始编译
rpmbuild -bb zabbix-spec
  • 运行开始肯定会遇到错误,缺依赖,如下图
    在这里插入图片描述
    不管三七二十一,先全部yum install一遍
yum install -y xxxx

如果遇到下图类似的错误,就想办法自己解决一下
在这里插入图片描述

  • 全部yum install完后再执行rpmbuild命令(但是肯定会大多都会遇到下图这个错误
    在这里插入图片描述
    上图的错误其实是zabbix.spec文件中要求postgresql-devel版本必须大于12,而我们安装的版本小于12 了,如下图所示:
    在这里插入图片描述
    在这里插入图片描述
  • 那么接下来就是安装postgresql-devel 12以上版本了,看我这文章
  • 安装完pg后再安装一下新一点的golang,不然会报错。可看参考链接,也可看我下面的code。

在这里插入图片描述

1.cd /usr/local
2.wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
3.如果以前装了go,找到以前的go文件夹,rm -rf go
4.tar -zxf go1.21.6.linux-amd64.tar.gz
5.vim /etc/profile
在文件末尾添加:
export GOROOT=/usr/local/go 
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
按:wq保存
6.source /etc/profile
7.go version
  • 安装完新的pg和go后,就再rpmbuild一下。下图就是编译好了的
rpmbuild -bb zabbix.spec

在这里插入图片描述

3.安装agent2

  • 去往/root/rpmbuild/RPMS/x86_64下,此时下图就是我们想要的zabbix agent2的安装包
    在这里插入图片描述
  • 安装(在/root/rpmbuild/RPMS/x86_64下执行rpm安装)
rpm -ivh zabbix-agent2-7.0.0alpha8-release1.ky10.x86_64.rpm
  • 检查
    在这里插入图片描述

这篇关于zabbix server/agent源码编译成rpm包(通用版-小白教程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/682234

相关文章

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

SQL Server 中的 WITH (NOLOCK) 示例详解

《SQLServer中的WITH(NOLOCK)示例详解》SQLServer中的WITH(NOLOCK)是一种表提示,等同于READUNCOMMITTED隔离级别,允许查询在不获取共享锁的情... 目录SQL Server 中的 WITH (NOLOCK) 详解一、WITH (NOLOCK) 的本质二、工作

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤