517  
centos7 rpm包定制软件包
作者: wyasw 于 2020年03月29日 发布在分类 / linux / 服务安装 下,并于 2020年03月29日 编辑
rpm

Centos7 rpm包定制软件包

1.1 安装FPM工具:

yum -y install ruby rubygems ruby-devel

#查看gem包管理源仓库地址

gem sources list

#添加aliyun 仓库地址

gem sources -a http://mirrors.aliyun.com/rubygems/

#移出国外gem包管理源仓库地址

gem sources --remove https://rubygems.org/

#安装fpm

gem install fpm



若安装出现以下错误:

Building native extensions.  This could take a while...

ERROR:  Error installing fpm:

ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb

checking for ffi.h... *** extconf.rb failed ***

Could not create Makefile due to some reason, probably lack of necessary

libraries and/or headers.  Check the mkmf.log file for more details.  You may

need configuration options.

解决办法是:

yum -y install ruby rubygems ruby-devel curl

curl -L get.rvm.io | bash -s stable

curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -

curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -

curl -L get.rvm.io | bash -s stable

source /usr/local/rvm/scripts/rvm

rvm install 2.2.3

ruby --version

gem install fpm

1.2  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

1.3 源码包编译安装

此示例安装zabbix客户端

useradd -s /sbin/nologin -M zabbix

mkdir p /var/log/zabbix

chown zabbix.zabbix /var/log/zabbix

wget https://fossies.org/linux/misc/zabbix-3.4.10.tar.gz

tar xf zabbix-3.4.10.tar.gz

cd zabbix-3.4.10/

./configure --prefix=/usr/local/zabbix --with-net-snmp --enable-agent

make && make install

cp misc/init.d/tru64/zabbix_agentd /etc/init.d/

chmod +x /etc/init.d/zabbix_agentd

vim   /etc/init.d/zabbix_agentd

DAEMON=/usr/local/zabbix/sbin/zabbix_agentd

ln -s /usr/local/zabbix/etc/ /etc/zabbix

ln -s /usr/local/zabbix/bin/* /usr/bin/

ln -s /usr/local/zabbix/sbin/* /usr/sbin/

###修改zabbix_agentd.conf配置文件

Server=127.0.0.1 此处添加服务端的 ip,如服务器不为本机,则需要填写远端 zabbix_server  ip 地址

ServerActive=127.0.0.1 此处修改为服务端的 ip,这里应该修改为该服务器对外的ip地址

/tmp/zabbix_agentd.log 修改日志路径

UnsafeUserParameters=0 默认是不启用自定义脚本功能的,要自定义 key ,需开启,设置为1

Include=/etc/zabbix/zabbix_agentd.conf.d/ 自定义的 agent d 配置文件可以写在这个目录下面

利用sed 方式内容替换的执行命令如下:

sed -i "s/Server\=127.0.0.1/Server\=192.168.113.111/g" /usr/local/zabbix/etc/zabbix_agentd.conf

sed -i "s/ServerActive\=127.0.0.1/ServerActive\=192.168.113.111:10051/g" /usr/local/zabbix/etc/zabbix_agentd.conf

sed -i "s#/tmp/zabbix_server.log#/var/log/zabbix/zabbix_server.log#g"  /usr/local/zabbix/etc/zabbix_agentd.conf

sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /usr/local/zabbix/etc/zabbix_agentd.conf

/etc/init.d/zabbix_agentd restart

cp /etc/init.d/zabbix_agentd /usr/local/zabbix/

错误:configure: error: Unable to use libpcre (libpcre check failed

```)

解决:libpcre

yum -y install pcre*

1.4 zabbixrpm包安装后执行的脚本

Vim /usr/local/zabbix/rpm.sh

#!/bin/bash

useradd -s /sbin/nologin -M zabbix

mkdir –p /var/log/zabbix

chown zabbix.zabbix /var/log/zabbix

cp /usr/local/zabbix/zabbix_agentd /etc/init.d/

chmod +x /etc/init.d/zabbix_agentd

ln -s /usr/local/zabbix/etc/ /etc/zabbix

ln -s /usr/local/zabbix/bin/* /usr/bin/

ln -s /usr/local/zabbix/sbin/* /usr/sbin/

1.5  Rpm打带执行脚本的rpm


fpm -s dir -t rpm -n zabbix_agentd -v 3.4.10 --post-install /usr/local/zabbix/rpm.sh -f  /usr/local/zabbix


若遇到以下错误:

Need executable 'rpmbuild' to convert dir to rpm {:level=>:error}

解决方法:yum install -y rpm-build

1.6 Rpm包查看详细 

rpm -qpl zabbix_agentd-3.4.10-1.x86_64.rpm

/usr/local/zabbix/bin/zabbix_get

/usr/local/zabbix/bin/zabbix_sender

/usr/local/zabbix/etc/zabbix_agentd.conf

/usr/local/zabbix/etc/zabbix_agentd.conf.d

/usr/local/zabbix/lib

/usr/local/zabbix/rpm.sh

/usr/local/zabbix/sbin/zabbix_agentd

/usr/local/zabbix/share/man/man1/zabbix_get.1

/usr/local/zabbix/share/man/man1/zabbix_sender.1

/usr/local/zabbix/share/man/man8/zabbix_agentd.8

/usr/local/zabbix/zabbix_agentd

1.7 本地用yum命令安装rpm包:

yum -y localinstall zabbix_agentd-3.4.10-1.x86_64.rpm




 推荐知识

 历史版本

修改日期 修改人 备注
2020-03-29 20:34:19[当前版本] wyasw 格式调整
2020-03-29 20:33:53 wyasw 创建版本

  目录
    文艺知识分享平台 - 4.3.0 京公网安备100012199188号 京ICP备2021030911号