-
使用fpm命令制作rpm包並安裝
工作中有如下情況需要將文件打包rpm:
- 避免重復工作,將源碼程序打包為rpm
- 使用yum發布項目,項目打包為rpm
- 將自己寫好的程序打包為rpm,提供給用戶下載
- 其他
以前打包rpm是一個非常復雜的一件事情,自從有了fpm,打包rpm就和tar打包文件一樣簡單
支持的源類型包:
- dir: 將目錄打包成所需要的類型,可以用於源碼編譯安裝的軟件包
- rpm: 對rpm進行轉換
- gem: 對rubygem包進行轉換
- python: 將Python模塊打包成相應的類型
支持的目標類型包:
-
- rpm: 轉換為rpm包
- deb: 轉換為deb包
- solaris: 轉換為solaris包
- puppet: 轉換為puppet包
FPM常用參數:
-s:指定源類型
-t:指定目標類型,即想要制作為什么包
-n:指定包的名字
-v:指定包的版本號
-C:指定打包的相對路徑
-d:指定依賴於哪些包
-f:第二次包時目錄下如果有同名安裝包存在,則覆蓋它;
-p:制作的rpm安裝包存放路徑,不想放在當前目錄下就需要指定;
--post-install:軟件包安裝完成之后所要運行的腳本;同--offer-install
--pre-install:軟件包安裝完成之前所要運行的腳本;同--before-install
--post-uninstall:軟件包卸載完成之后所要運行的腳本;同--offer-remove
--pre-uninstall:軟件包卸載完成之前所要運行的腳本;同—before-remove
--prefix:制作好的rpm包默認安裝路徑;
安裝FPM
# 安裝ruby
yum -y install ruby rubygems ruby-devel
# 添加淘寶Ruby倉庫
gem sources -a http://ruby.taobao.org/
# 移除原生的Ruby倉庫
gem sources --remove http://rubygems.org/
# 安裝fpm
gem install fpm
准備打包資源
制作rpm包
查看rpm包信息並安裝
卸載rpm包
[root@vm172-31-16-2 open-falcon]# rpm -qa | grep falcon
falcon-agent-0.5.1.0-1.x86_64
[root@vm172-31-16-2 open-falcon]# rpm -e falcon-agent-0.5.1.0-1.x86_64
備注:如果制作的rpm包有多個目錄結構,次級目錄並不會被刪除,目前還沒找到更好的方法。