我的环境是centos7.2的

一、安装FPM工具

yum -y install ruby rubygems ruby-devel

gem sources list   查看gem包管理源仓库地址

gem sources -a http://mirrors.aliyun.com/rubygems/  添加aliyun 仓库地址

gem sources --remove https://rubygems.org/  移出国外gem包管理源仓库地址

安装fpm
gem install fpm

安装如遇以下问题,请看以下内容

ERROR:  Error installing fpm:

ruby-xz requires Ruby version >= 1.9.3

解决方法:

1.更新ruby

2: 安装旧版本的fpm(建议采用)

gem install fpm -v 1.4.0  指定版本安装

二、源码包编译安装

./configure  --prefix=/opt/zabbix --enable-agent

make && make install

三、启动脚本修改及定制

创建定制目录

mkdir /opt/zabbix/{logs,pid}

复制启动脚本

cp /opt/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_agentd /opt/zabbix/bin/

修改启动脚本路径

vim /opt/zabbix/bin/zabbix_agentd

BASEDIR=/opt/zabbix

修改配置文件

vim /opt/zabbix/etc/zabbix_agentd.conf

grep -v ^# /opt/zabbix/etc/zabbix_agentd.conf| grep -v ^$

PidFile=/opt/zabbix/pid/zabbix_agentd.pid

LogFile=/opt/zabbix/logs/zabbix-agent.log

Server=127.0.0.1

StartAgents=5

ServerActive=127.0.0.1

Hostname=Zabbix server

HostMetadata=Linux

RefreshActiveChecks=60

BufferSend=10

BufferSize=1000

MaxLinesPerSecond=200

Timeout=15

UnsafeUserParameters=1

Include=/opt/zabbix/etc/zabbix_agentd.conf.d/*.conf

四、创建安装前脚本及卸载前脚本

1、创建安装前脚本

cat /opt/zabbix/install

#!/usr/bin/bash

useradd zabbix  -s /sbin/nologin

chown -R zabbix:zabbix /opt/zabbix

\cp  /opt/zabbix/bin/zabbix-agent.service /usr/lib/systemd/system/zabbix-agent.service

chmod +x /opt/zabbix/sbin/zabbix_agentd

systemctl enable zabbix-agent

sed -i "s/^Hostname=Zabbix agent/Hostname=`hostname`/g"  /opt/zabbix-agent/etc/zabbix_agentd.conf

2、卸载前脚本

#!/usr/bin/bash

pkill -9 zabbix_agentd

userdel -r zabbix

groupdel zabbix

systemctl disable zabbix-agent

rm -rf /usr/lib/systemd/system/zabbix-agent.service

rm -rf /opt/zabbix

3、把官方zabbix中的rpm包zabbix-agent.service提取出来,然后改成自己的需求即可。

rpm2cpio zabbix-agent-3.2.6-1.x86_64.rpm | cpio -div    ###解压rpm包命令方法。

cat zabbix-agent.service

[Unit]

Description=Zabbix Agent

After=syslog.target

After=network.target

[Service]

Environment="CONFFILE=/opt/zabbix/etc/zabbix_agentd.conf"

EnvironmentFile=-/etc/sysconfig/zabbix-agent

Type=forking

Restart=on-failure

PIDFile=/opt/zabbix/pid/zabbix_agentd.pid

KillMode=control-group

ExecStart=/opt/zabbix/sbin/zabbix_agentd -c $CONFFILE

ExecStop=/bin/kill -SIGTERM $MAINPID

RestartSec=10s

[Install]

WantedBy=multi-user.target

五、打成RPM包

命令:

fpm -f -s dir -t rpm -n zabbix-agent --epoch 0 -v 3.2.6 -C /  -p /tmp/  --verbose --category 'Applications/Internet' --description 'Zabbix Agent' --url 'http://www.zabbix.com/' --license 'BSD' -m 'zabbix'  --post-install /opt/zabbix/install --post-uninstall /opt/zabbix/remove  --no-rpm-sign /opt/zabbix

文件在/tmp目录下

六、测试安装及卸载,验证。

yum localinstall zabbix-agent-3.2.6-1.x86_64.rpm -y

yum remove zabbix-agent -y

FPM常用参数:

-s:指定源类型

-t:指定目标类型,即想要制作为什么包

-n:指定包的名字

-v:指定包的版本号

-C:指定打包的相对路径

--no-rpm-sign 指定安装目录

假如-C / --no-rpm-sign /usr/local/zabbix 而打包机器的数据包路径是/usr/local/zabbix 那安装这个rpm包后,在本地的数据就是/usr/local/zabbix。

如果是-C /usr/local/zabbix --no-rpm-sign 那么必须吧数据包放到/usr/local/zabbix/usr/local/zabbix 下,否安装全部安装在/根目录下

-d:指定依赖于哪些包

-f:第二次包时目录下如果有同名安装包存在,则覆盖它

-p:输出的安装包的目录,不想放在当前目录下就需要指定

--post-install:软件包安装完成之后所要运行的脚本;同--offer-install

--pre-install:软件包安装完成之前所要运行的脚本;同--before-install

--post-uninstall:软件包卸载完成之后所要运行的脚本;同--offer-remove

--pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove

--description:软件包描述

详情:fpm -h

转载于:https://blog.51cto.com/silencezone/1935110

使用fpm简单制作自定义rpm包相关推荐

  1. 【自制yum仓库一】自定义RPM包

    当我们需要自己制作yum仓库的时候,第一步应该是准备rpm包.一般rpm包的来源有两种办法:1.通过别人的镜像拉取rpm包 :2.自己通过源码包来制作rpm包:下面来讲怎么通过源码包自定义RPM包. ...

  2. kali rpm 安装方法_linux下制作安装rpm包的方法

    linux下制作安装rpm包的方法 发布时间:2013-04-26 22:39:17   作者:佚名   我要评论 制作rpm包,以rp-pppoe-3.10为列进行制作过程,需要的朋友可以参考下 一 ...

  3. 使用FPM打包工具打rpm包

    使用FPM打包工具打rpm包 一:安装ruby环境和gem命令 fpm 是 ruby写的,因此系统环境需要ruby且版本必须大于1.8.5# yum -y install ruby rubygems ...

  4. Linux 自定义 RPM 包及制作 YUM 仓库

    目录 一.定制 rpm 包概述 1.1 什么是定制 rpm 包 1.2 为什么要定制 rpm 包 1.3 如何定制 rpm 包 二.安装 FPM 工具 2.1 我在安装过程出现如下错误:ERROR: ...

  5. fpm制作mysql rpm包_FPM简介(定制rpm包)

    FPM简介 fpm是生成rpm包的工具.rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前 ...

  6. fpm制作mysql rpm包_fpm制做mysql-5.6.33 rpm包

    增加用户: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /data/my_db mysql 源码安装mysql-5 ...

  7. 制作mysql rpm包_一步步制作RPM包

    一.RPM制作步骤 我们在企业中有的软件基本都是编译的,我们每次安装都得编译,那怎么办呢?那就根据我们的需求制作RPM安装包吧.先来说说基本布骤: 1.Planning what you want   ...

  8. Yum卸载软件并删除依赖,下载离线rpm包,制作拷贝rpm包dockerfile

    前景:四层代理的软件包拷贝到容器yum仓库里 1.查找安装历史 ~]# yum history Loaded plugins: fastestmirror, langpacks ID | Login ...

  9. rpmbuile 制作drbd RPM包

    drbd-8.4.3.tar.gz 源码编译制作rpm 包 解压tar -axf drbd-8.4.3.tar.gz ./configure --enable-spec --with-km   ## ...

最新文章

  1. iOS UIView快速添加事件
  2. org.apache.ibatis.binding.BindingException: Type interface XXX is not known to the MapperRegistry.
  3. BOOST_VMD_ASSERT_IS_EMPTY宏相关的测试程序
  4. 十分钟搞定 C/C++ 项目自动化构建 —— Xmake 入门指南
  5. mysql数据到导入导出
  6. 在容器上构建持续部署及最佳实践初探
  7. Linux开发_WARNING: ‘aclocal-1.14‘ is missing on your system.
  8. Python爬虫基础-01-带有请求参数的爬虫
  9. LeetCode - Duplicate Emails
  10. 【每日一知】什么是TAOCP? (2021.02.07)
  11. C语言基础入门一(自学笔记)
  12. matplotlib工具栏源码探析三(添加、删除自定义工具项)
  13. 扫描普通二维码,进入微信小程序
  14. dw选项卡代码_dreamweaver cs6快捷注释方法
  15. springboot配置https(阿里云免费证书)
  16. ffmpeg分离视频音频流!
  17. 课时11:列表:一个打了激素的数组2
  18. 暗黑2魔电西格玛攻略_魔电西格玛,暗黑2最佳继承者-1949游戏测评
  19. 中石油即时通手机版显示服务器登录失败,中石油即时通手机最新版app
  20. qq 4 android,Android QQ HD v5.5.4 正式版发布

热门文章

  1. 高效JQuery编码
  2. Xcode 编译有错误却没有任何可查看错误的issues
  3. oracle监听错误与hosts文件配置
  4. 业务脆弱性评估是业务持续性保障(BCM)的基础数据
  5. 网站性能优化思维导图
  6. Python基础23_os,sys,序列化,pickle,json
  7. 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器
  8. [记录] 解决img的1px空白问题
  9. 人人都能学会的python编程教程11:定义函数
  10. 10个免费好用功能强大的网页动画效果库