scribe一般采用源码编译安装,但是这种做法不利于批量安装或应用的快速部署,并且编译安装过程会出现许多幺蛾子。下面就扯扯怎样用fpm将scribe制作成rpm包。
1、安装fpm FPM是Ruby模块,先装上ruby的一些环境依赖。
1  | $ yum install ruby rubygems ruby-devel  | 
添加淘宝的Ruby仓库,稳定。
1  | $ gem sources -a http://ruby.taobao.org/  | 
移除原生的Ruby仓库
1  | $ gem sources --remove http://rubygems.org/  | 
最后安装fpm
1  | $ gem install fpm  | 
2、编译安装scribe,并制作rpm包 首先安装scribe依赖的thrift
1  | $ yum install boost boost-devel autoconf libevent-devel ldconfig  | 
再指定安装到临时目录/tmp/scribe,安装到临时目录这是fpm制作rpm包必要的步骤。
1  | $ make install DESTDIR=/tmp/scribe  | 
再安装scribe依赖的thrift-fb303
1  | $ cd /opt/src/thrift-0.9.0/contrib/fb303  | 
安装完成后创建必要的链接(这一步可以写在rpm包安装完成后执行的脚本里)
1  | $ ln -s /usr/local/thrift/lib/libthrift-0.9.0.so /lib64/  | 
到目前为止,本机的scribe已经编译安装完成了,是时候用fpm将安装在临时目录/tmp/scribe中的文件制作成rpm包了。
3、将临时安装目录/tmp/scribe打成rpm包 编写安装rpm包完成后的脚本post-scribe.sh,脚本位置/root/sh/post-scribe.sh
1  | $ cat post-scribe.sh  | 
题外话,rpm包分别可以在安装前、安装后、卸载前、卸载后这4个阶段执行不同的脚本。
根据不同的需求编写不同的脚本,然后制作rpm包的时候将这些脚本包括进去。 将临时安装目录打包成rpm包
1  | $ fpm -s dir -t rpm --epoch 0 --iteration 1.el6 -v 2.0.0 -n scribe \  | 
fpm一些常用参数如下(用fpm –help可以才看所有参数详解)
1  | -n 生成的package名字  | 
把rpm包放到yum源中,先更新中心yum仓库的元数据,然后再更新需要安装该rpm包机器的yum元数据。
1  | #提供yum源服务的机器  |