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源服务的机器 |