RPM快速打包

RPM快速打包python

 

Linux目前安裝軟件的方式有三種:json

1.源碼安裝,優勢是能夠自定義安裝目錄和一些配置文件,可是須要事先調整編譯參數,比較麻煩。centos

2.Yum安裝軟件,優勢是全自動安裝,不須要爲依賴的問題發愁,可是他的自主性太差,軟件的功能和存放的位置都是已經放置好的,不容易改變。ruby

3.Rpm安裝,這種相對上面來講是比較方便的。既能夠有自主性,又能夠實現全自動安裝。工具

 

一.下面就來介紹rpm包的製做:post

之前都是用rpmbuild來製做的,我的以爲是比較麻煩的,因此下面我不會介紹,而我要介紹的是一個比較快速製做rpm包的工具fpm(實際上是一種格式轉換工具)ui

1.支持的源類型包centos7

 Dir 將目錄打包成所須要的類型,能夠用於源碼編譯安裝的軟件包spa

 Rpm 對rpm進行轉換rem

 Gem 對rubygem包進行轉換

 Python 將python模塊打包成相應的類型

 

2.支持的目標類型包

 Rpm 轉換爲rpm包

 Deb 轉換爲deb包

 Solaris 轉換爲solaris包

 Puppet 轉換爲puppet模塊

 

3.Fpm安裝

fpm是ruby寫的,所以系統環境須要ruby,且ruby版本大於1.8.5

#安裝ruby模塊

yum -y install ruby rubygems ruby-devel

#查看當前rubygem倉庫

gem sources list

#由於國外的源比較慢因此咱們要添加國內的源,移除原來的源

gem sources --add https://ruby.taobao.org/

或者

gem sources -a http://mirrors.aliyun.com/rubygems/

#移除原有的源

gem sources --remove http://rubygem.org/

#安裝fpm,gem從rubygem倉庫安裝軟件相似於yum安裝。

Gem install json -v 1.8.3

Gem install fpm -v 1.3.3

#上面的兩步主要是針對於centos6,若是是centos7的話咱們直接就執行    gem install fpm

 

4.Fpm參數

詳情請參考fpm --help

常見參數:

-s 指定源類型

-t 指定目標類型,就是你想要製做什麼包

-n 指定包的名字

-v 指定包的版本號

-C 指定打包的相對路徑

-d 指定依賴於哪些包

-f 第二次打包時候目錄下若是有同名的安裝包存在則直接覆蓋

-p 輸出安裝包的目錄,若是不想放在當前目錄下則必須指定

--post-install 軟件包安裝完成後須要運行的腳本等於--after-install

--pre-install 軟件包完成以前所要運行的腳本等於--before-install

--post-uninstall 卸載軟件包以後所要運行的腳本--after-remove

--pre-uninstall 卸載軟件包以前所要運行的腳本--before-remove

 

實例:

Example:我這裏有一個monitor的目錄,是我一些腳本的合集,我要將他轉換成rpm包,到時候經過rpm安裝。

1)執行:fpm -s dir -t rpm -n monitor -v 1.0 /root/monitor-base-2/

 

生成一個monitor-1.0-1.x86_64.rpm的rpm包

2)rpm -ivh monitor-1.0-1.x86_64.rpm

在當前目錄安裝完成。

或者:yum localinstall monitor-1.0-1.x86_64.rpm也是能夠搞定的。

 

#rpm -qpl能夠查看包裏面的內容,這個仍是比較好用的

rpm -qpl  monitor-1.0-1.x86_64.rpm

注意:用rpm -ivh 安裝會存在依賴性問題,而後就會報錯。因此必須先安裝依賴文件而後再運行rpm -ivh。可是若是用yum  localinstall 則會很爽。由於他是先安裝依賴文件而後在安裝包的,我比較建議這個。

相關文章
相關標籤/搜索