使用fpm制作rpm包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用fpm制作rpm包相关的知识,希望对你有一定的参考价值。

一、FPM工具安装:
系统:centos7.3
Fpm工具依赖ruby模块,首先安装相关ruby依赖包,还需要安装rpm-build

yum -y install ruby rubygems ruby-devel rpm-build

然后添加阿里的ruby仓库

gem sources -a https://gems.ruby-china.org/

移除ruby的原生仓库

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

查看ruby的仓库列表,如下所示则表示成功

gem sources

CURRENT SOURCES

https://gems.ruby-china.org/
最后安装fpm,安装可能需要等待一段时间

gem install fpm

安装成功后,可以使用fpm --help来查看fpm命令的使用帮助说明

fpm --help

二、fpm常用命令参数说明
-C #指定fpm去哪个目录查找打包的文件
-s #指定源的类型,如dir
-t #指定目标类型,如rpm包,或者deb包等
-n #指定包的名字
-v #指定包的版本号
-d #指定依赖包
-f #第二次制作rpm包如果存在同名,则覆盖
-p #输出rpm包的目录
--prefix #指定安装路径
--after-install #包安装后要运行的脚本
--before-install #包安装前要运行的脚本
--after-remove #包卸载后要运行的脚本
--before-remove #包卸载前要运行的脚本

三、使用fpm制作tomcat包(简单示例)
我们先下载好最新的tomcat二进制包,解压,路径为:
/mnt/zxt/usr/local/tomcat-8.5.28
进入/mnt/zxt/目录,执行fpm命令

fpm -f -s dir -t rpm -n tomcat-8.5.28 -p /tmp/ --license ‘BSD‘ -m ‘zxt‘ --no-rpm-sign --verbose -v 0.2.2 --iteration 2.el6 -C /mnt/zxt/ --after-remove ‘after_remove.sh‘

然后我们到到/tmp目录下查看生成的rpm包
-rw-r--r-- 1 root root 9593026 Mar 5 15:53 tomcat-8.5.28-0.2.2-2.el6.x86_64.rpm
安装这个tomcat包检查下
#yum -y install tomcat-8.5.28-0.2.2-2.el6.x86_64.rpm
安装完成后我们看下/usr/local/目录下面有没有tomcat-8.5.28目录

ls /usr/local/

aegis apr cloudmonitor include lib64 python3.bak src
apache apr-util etc jdk-8u131-linux-x64.gz libexec sbin tomcat-8.5.28
表示已经成功安装,再卸载此包确认下tomcat-8.5.28目录会不会被删除

yum -y remove tomcat-8.5.28

发现tomcat-8.5.28目录已经被删除。
after_remove.sh脚本如下:
#!/bin/bash
if ps -ef|grep tomcat-8.5.28 &>/dev/null;then
pid=$(ps -ef|grep tomcat-8.5.28|grep -v grep|awk {‘print $2‘})
kill -9 $pid
fi
rm -rf /usr/local/tomcat-8.5.28

以上是关于使用fpm制作rpm包的主要内容,如果未能解决你的问题,请参考以下文章

速成制作rpm包

fpm工具来制作rpm包软件

轻松使用Fpm封装制作Rpm包 --Linux

fpm制作rpm包

RPM包制作及yum仓库搭建

使用fpm简单制作自定义rpm包