首页 > 代码库 > linux下使用checkinstall 制作zabbix的rpm包

linux下使用checkinstall 制作zabbix的rpm包

目前,想要在所有的client端安装zabbix client,因为想要指定预定义的路径,通过zabbix资源制作rpm包,制作rpm包的方式有多种
一种是:rombuild的方式,主要是编写spec的文件
一种是:checkinstall 开源的

一种是:fpm,ruby写的,也是开源的

学习通过checkinstall 的方式,制作rpm包
1.下载安装
wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz && tar fxz checkinstall-1.6.2.tar.gz && cd checkinstall-1.6.2 && make && make install 安装很简单 这样就OK了
安装完后 我们这么用呢 下面开始讲下这么用吧
咱们以前安装源码包的时候 都是 ./confugure 一堆参数 然后 make 最后make install 这样的流程
如果用checkinstall 这个工具后 安装一个软件后 不需要最后的make install 了 前2步搞完了 直接 用checkinstall 来搞就行
下面我正好用个 zabbix 我就用这个来搞一片吧
提前需要:yum install net-snmp net-snmp-devel
                yum install libcurl-devel
cd zabbix-2.2.1
./configure –prefix=/usr/local/zabbix –enable-server –enable-agent –with-mysql –with-net-snmp –with-libcurl && make
好 先搞完这2步骤 然后用 checkinstall 工具
[root@TEST01 zabbix-2.2.1]# checkinstall
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
本软件以 GNU GPL 版权协议颁布
The checkinstallrc file was not found at:
/usr/local/sbin/../checkinstallrc
假定是缺省值。
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]: y
准备软件包的文档……OK
请选择你想使用的打包方式。
Slackware [S], RPM [R] 还是 Debian [D]?R
请为这个软件包写一个描述。
用一个空行或 EOF 来结束你的描述。
>> this is a zabbix install file
>>
软件包将用下面的值来创建:
1 - Summary: [ this is a zabbix install file ]
2 - Name: [ zabbix ]
3 - Version: [ 2.2.1 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ x86_64 ]
8 - Source location: [ zabbix-2.2.1 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ zabbix ]
输入一个数字来改变它们,或按回车键继续: (这里表示如果有需要去更改的地方
Installing with make install...
如遇到错误:
ERROR: ld.so: object ‘/usr/local/lib64/installwatch.so‘ from LD_PRELOAD cannot be preloaded: ignored.
make[1]: Entering directory `/tmp/checkinstall-1.6.2/zabbix-2.2.1/src‘
ERROR: ld.so: object ‘/usr/local/lib64/installwatch.so‘ from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object ‘/usr/local/lib64/installwatch.so‘ from LD_PRELOAD cannot be preloaded: ignored.
Making install in libs
解决办法:
echo "/usr/local/lib64" >/etc/ld.so.conf.d/installwatch.conf
ldconfig
ln -s /usr/local/lib/installwatch.so /usr/local/lib64/installwatch.so
如果正常的话,会有日志的输出:
Making install in libs
make[2]: Entering directory `/tmp/checkinstall-1.6.2/zabbix-2.2.1/src/libs‘
Making install in zbxcrypto
make[3]: Entering directory `/tmp/checkinstall-1.6.2/zabbix-2.2.1/src/libs/zbxcrypto‘
make[4]: Entering directory `/tmp/checkinstall-1.6.2/zabbix-2.2.1/src/libs/zbxcrypto‘
make[4]: Nothing to be done for `install-exec-am‘.
make[4]: Nothing to be done for `install-data-am‘.
make[4]: Leaving directory `/tmp/checkinstall-1.6.2/zabbix-2.2.1/src/libs/zbxcrypto‘
make[3]: Leaving directory `/tmp/checkinstall-1.6.2/zabbix-2.2.1/src/libs/zbxcrypto‘
Making install in zbxcommon
make[3]: Entering directory `/tmp/checkinstall-1.6.2/zabbix-2.2.1/src/libs/zbxcommon‘
make[4]: Entering directory `/tmp/checkinstall-1.6.2/zabbix-2.2.1/src/libs/zbxcommon‘
make[4]: Nothing to be done for `install-exec-am‘.
make[4]: Nothing to be done for `install-data-am‘.
=============================== 安装成功 =================================
Copying documentation directory...
./
./NEWS
./INSTALL
./AUTHORS
./COPYING
./README
./ChangeLog
把文件拷贝到临时目录……OK
Done. The new package has been saved to
/usr/src/redhat/RPMS/x86_64/zabbix-2.2.1-1.x86_64.rpm
You can install it in your system anytime using:
     rpm -i zabbix-2.2.1-1.x86_64.rpm
之后,到 /usr/src/redhat/RPMS/x86_64/路径下,将生产的包scp到client端下,执行rpm进行安装
scp zabbix-2.2.1-1.x86_64.rpm root@10.10.10.102:/tmp
client 端的安装:
[root@puppet tmp]# rpm -ivh zabbix-2.2.1-1.x86_64.rpm
Preparing... ########################################### [100%]
  1:zabbix ########################################### [100%]
安装路径下的内容
/usr/local/zabbix
[root@puppet zabbix]# ls
bin etc sbin share
OK,这样的制作方式就OK了