1. 程式人生 > >使用fpm制作rpm包

使用fpm制作rpm包

linux rpm fpm

一、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包