使用FPM封裝RPM包
阿新 • • 發佈:2018-01-10
orm 支持 follow img mtd org ima ems con 無意中看到一張架構圖,遷出代碼使用本地FPM打包,看不懂FPM是什麽高級玩意,於是有了下文。
-d --depends :指定依賴於哪些包
--post-install :軟件包安裝完成之後所要運行的腳本;和”--after-install” 意思一樣
--pre-install :軟件包安裝完成之前所要運行的腳本;和”--before-install” 意思一樣
--post-uninstall :軟件包卸載完成之後所要運行的腳本;和”--after-remove”意思一樣
--pre-uninstall:軟件包卸載完成之前所要運行的腳本;和”--before-remove”意思一樣
FPM介紹
簡單的說FPM就是將一種類型的包轉換到另外一種的類型。比如我們常說的將編譯安裝的包轉換到rpm包。
進一步的官方說明可參考:
https://docs.google.com/present/view?id=0Aa9liCTsAyzRZGNtd3dkOTRfMTdmczY2azlkcg&hl=en
支持的源類型包有:rpm、npm、rubygem、ded、python、dir
支持的輸出類型有:rpm、ded、solaris、puppet
本例只要介紹常用的rpm包制作方法,至於其它的功能可自行探索。
FPM安裝
# 安裝ruby
yum -y install ruby rubygems ruby-devel
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
gem sources -l
gem install fpm
使用FPM打RPM包
FPM常用參數
-s :指定源類型
-t :指定目標類型,即想要制作為什麽包
-n :指定包的名字
-v :指定包的版本號
-C :指定打包的相對路徑,即build directory
原文解釋為:Change directory to here before searching for files
--post-install :軟件包安裝完成之後所要運行的腳本;和”--after-install” 意思一樣
--pre-install :軟件包安裝完成之前所要運行的腳本;和”--before-install” 意思一樣
--post-uninstall :軟件包卸載完成之後所要運行的腳本;和”--after-remove”意思一樣
--pre-uninstall:軟件包卸載完成之前所要運行的腳本;和”--before-remove”意思一樣
fpm封包rpm
#這個 -C 是相對路徑,在另外的服務器上執行rmp -ivh 會安裝根目錄下 [root@rabbitmq02 ~]# fpm -s dir -t rpm -n website -v 1.0.1 -C /root/downloads/ Created package {:path=>"website-1.0.1-1.x86_64.rpm"} #絕對路徑,這個比較好用 [root@rabbitmq02 ~]# fpm -s dir -t rpm -n website -v 1.0.2 -f /root/downloads/ Created package {:path=>"website-1.0.2-1.x86_64.rpm"} # 自己對文件進行增刪,然後到第二臺服務器rpm -Uvh 包名進行升級 [root@rabbitmq02 ~]# fpm -s dir -t rpm -n website -v 1.0.3 -f /root/downloads/ Force flag given. Overwriting package at website-1.0.3-1.x86_64.rpm {:level=>:warn} Created package {:path=>"website-1.0.3-1.x86_64.rpm"} #自己對文件進行增刪,然後到第二臺服務器rpm -Uvh 包名進行升級 [root@rabbitmq02 ~]# fpm -s dir -t rpm -n website -v 1.0.4 -f /root/downloads/ Created package {:path=>"website-1.0.4-1.x86_64.rpm"}
註意:website-1.0.3-1.x86_64.rpm生成的包名要每次不一樣才能進行rpm -Uvh 升級,不懂的,需要rpm基礎
查看安裝包內容
第二臺服務器上,看看rpm包安裝的位置
[root@centos-docker ~]# rpm -qa|grep website
website-1.0.4-1.x86_64
[root@centos-docker ~]# rpm -ql website-1.0.4-1.x86_64
/root/downloads/3.txt
/root/downloads/python/2.txt
/root/downloads/python/login.py
/root/downloads/python/login.pyc
/root/downloads/python/logview.pyc
/root/downloads/python/sessions/068e4c1fbe06272c20bca327a50c46a200df9f1a
/root/downloads/web.py-0.33.tar.gz
/root/downloads/web.py-0.33/PKG-INFO
/root/downloads/web.py-0.33/build/lib/web/__init__.py
/root/downloads/web.py-0.33/build/lib/web/application.py
/root/downloads/web.py-0.33/build/lib/web/browser.py
/root/downloads/web.py-0.33/build/lib/web/contrib/__init__.py
/root/downloads/web.py-0.33/build/lib/web/contrib/template.py
/root/downloads/web.py-0.33/build/lib/web/db.py
/root/downloads/web.py-0.33/build/lib/web/debugerror.py
/root/downloads/web.py-0.33/build/lib/web/form.py
/root/downloads/web.py-0.33/build/lib/web/http.py
/root/downloads/web.py-0.33/build/lib/web/httpserver.py
/root/downloads/web.py-0.33/build/lib/web/net.py
/root/downloads/web.py-0.33/build/lib/web/session.py
/root/downloads/web.py-0.33/build/lib/web/template.py
/root/downloads/web.py-0.33/build/lib/web/test.py
/root/downloads/web.py-0.33/build/lib/web/utils.py
/root/downloads/web.py-0.33/build/lib/web/webapi.py
/root/downloads/web.py-0.33/build/lib/web/webopenid.py
/root/downloads/web.py-0.33/build/lib/web/wsgi.py
/root/downloads/web.py-0.33/build/lib/web/wsgiserver/__init__.py
/root/downloads/web.py-0.33/setup.py
/root/downloads/web.py-0.33/web/__init__.py
/root/downloads/web.py-0.33/web/application.py
/root/downloads/web.py-0.33/web/browser.py
/root/downloads/web.py-0.33/web/contrib/__init__.py
/root/downloads/web.py-0.33/web/contrib/template.py
/root/downloads/web.py-0.33/web/db.py
/root/downloads/web.py-0.33/web/debugerror.py
/root/downloads/web.py-0.33/web/form.py
/root/downloads/web.py-0.33/web/http.py
/root/downloads/web.py-0.33/web/httpserver.py
/root/downloads/web.py-0.33/web/net.py
/root/downloads/web.py-0.33/web/session.py
/root/downloads/web.py-0.33/web/template.py
/root/downloads/web.py-0.33/web/test.py
/root/downloads/web.py-0.33/web/utils.py
/root/downloads/web.py-0.33/web/webapi.py
/root/downloads/web.py-0.33/web/webopenid.py
/root/downloads/web.py-0.33/web/wsgi.py
/root/downloads/web.py-0.33/web/wsgiserver/__init__.py
使用FPM封裝RPM包