这里也不介绍rpmbuild这个打包工具了,想了解的朋友自行谷歌百度。但我不建议大家花太多的时间去学习这个命令,比较晦涩,而且我会在下面介绍更简单的命令。
FPM打包工具
FPM的作者是jordansissel
FPM的github: https://github.com/jordansissel/fpm
FPM功能简单说就是将一种类型的包转换成另一种类型。
安装FPM依赖:
yum安装- y, openssl *
yum安装gcc - y *
yum安装- y rpm-build
宝石来源-a http://mirrors.aliyun.com/rubygems/ ,备用源
1。支持的源类型包
dir ,,,,,,,,将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm ,,,,,,,,对rpm进行转换 gem ,,,,,,,,对rubygem包进行转换 python ,,,,,将python模块打包成相应的类型
2。支持的目标类型包
rpm ,,,,,,,,转换为rpm包 deb ,,,,,,,,转换为deb包 solaris ,,,,转换为solaris包 puppet ,,,,,转换为傀儡模块
3。FPM安装
<>以前FPM是ruby写的,因此系统环境需要红宝石,且ruby版本号大于于1.8.5。 #,安装ruby模块yum -y install ruby rubygems ruby-devel #,查看当前使用的rubygems仓库gem sources 列表 #,添加淘宝的Rubygems仓库,外国的源慢,移除原生的Ruby仓库 gem sources ——add https://ruby.taobao.org/ ——remove #,安装fpm,宝石从rubygem仓库安装软件类似百胜从百胜仓库安装软件。 首先安装低版本的json,高版本的json需要ruby2.0以上,然后安装低版本的fpm,够用。 gem install  json -v 1.8.3gem  install fpm -v 1.3.3 #,上面的2步安装仅适合CentOS6系统,CentOS7系统一步搞的定,即gem install fpm4。FPM参数
详细使用见FPM -
常用参数
-s ,,,,,,,,,指定源类型 -t ,,,,,,,,,指定目标类型,即想要制作为什么包 -n ,,,,,,,,,指定包的名字 -v ,,,,,,,,,指定包的版本号 -C ,,,,,,,,,指定打包的相对路径,,Change directory 用here before searching forfiles -d ,,,,,,,,,指定依赖于哪些包 -f ,,,,,,,,,第二次打包时目录下如果有同名安装包存在,则覆盖它 -p ,,,,,,,,,输出的安装包的目录,不想放在当前目录下就需要指定 ——post-install ,,,,,软件包安装完成之后所要运行的脚本;同——在安装后 ——pre-install ,,,,,,软件包安装完成之前所要运行的脚本;同——安装前 ——post-uninstall ,,,软件包卸载完成之后所要运行的脚本;同——after-remove ——pre-uninstall ,,,,软件包卸载完成之前所要运行的脚本;同——before-remove
使用实例——实战定制nginx的RPM包
1。安装nginx
<>以前yum -y install pcre-devel openssl-devel useradd nginx  -M -s /sbin/nologin tar xf  nginx-1.6.2.tar.gz cd nginx-1.6.2./configure ——prefix=/应用程序/nginx-1.6.2 ——用户=nginx ——组=nginx ——with-http_ssl_module ——with-http_stub_status_module make ,, make 安装 ln -s /应用程序/nginx-1.6.2/,/应用程序/nginx2。以前编写脚本
<> [root@xcn ~] #, cd /服务器/脚本/(root@xcn 脚本)#,vim nginx_rpm.sh , #,这是安装完rpm包要执行的脚本 # !/bin/bash useradd nginx  -M -s /sbin/nologin ln -s /应用程序/nginx-1.6.2/,/应用程序/nginx3。以前打包
<> [root@xcn ~] #, fpm -s dir -t rpm -n nginx -v 1.6.2 -d “pcre-devel, openssl-devel”, ——post-install /服务器/脚本/nginx_rpm.sh -f /应用程序/nginx-1.6.2/,, no value  for epoch  is ,, defaulting 用nil {:水平=祝辞:警告} no value  for epoch  is ,, defaulting 用nil {:水平=祝辞:警告}Created package {:路径=祝辞;“nginx 1.6.2 - 1. x86_64.rpm”} (root@xcn ~) #, ll -h nginx 1.6.2 - 1. x86_64.rpm -rw-r——r, 1, root root 6.7 m Nov , 1, 10:02 nginx - 1.6.2 - 1. - x86_64。rpm4。安装rpm包
安装rpm包的三种方法:
- <李>
rpm命令安装
李>[root@LB-nginx-01 ~] #, rpm -ivh nginx x86_64.rpm——1.6.2 - 1. 错误:,Failed 依赖关系:,,,,,,, pcre-devel is  needed by  nginx 1.6.2 - 1. x86_64 ,,,,, ,openssl-devel is  needed by  nginx-1.6.2-1。x86_64但会报如上依赖错误,需要先百胜安装依赖才能安装rpm包。自动化部署必备技能,定制化RPM包