您好,登錄后才能下訂單哦!
fpm包管理工具介紹
這里還有一份google關于rpm介紹的PPT:fpm, baylisa, april 2011.pdf
所以下面重點介紹使用的過程:
1、修改rubygems的源由于國內網絡原因,導致 rubygems.org 存放在 Amazon S3 上面的資源文件間歇性連接失敗。
所以需要改成taobao提供的源。這是一個完整 rubygems.org 鏡像,可以用此代替官方版本,同步頻率目前為15分鐘一次。
# yum install ruby rubygems # gem sources --remove http://rubygems.org/ # gem sources -a http://ruby.taobao.org/ # gem sources -l
*** CURRENT SOURCES *** http://ruby.taobao.org
請確保只有 ruby.taobao.org
2、使用記錄FPM功能簡單說就是將一種類型的包轉換成另一種類型。
支持的源類型包:“dir”:將目錄打包成所需要的類型,可以用于源碼編譯安裝的軟件包
“rpm”:對rpm進行轉換
“gem”:對rubygem包進行轉換
“python”:將python模塊打包成相應的類型
支持的目標類型包:
“rpm”:轉換為rpm包
“deb”:轉換為deb包
“solaris”:轉換為solaris包
“puppet”:轉換為puppet模塊
因為我們平時使用的比較多的是rpm包,因此這里主要介紹如何將源碼安裝的包轉換為RPM包,其他功能感興趣的可以試試。
3、操作實例以安裝squid為例。源為已經編譯安裝的目錄,制作rpm包。
首先需要下載squid的tar.gz包
# cd squid-3.4.6 # ./configure --prefix=/home/squid/squid-3.4.6 # make # make install
#tar squid-conf.tar.gz -C /home/squid/squid-3.4.6/etc/ #將配置文件提前放置在etc下面。
可以先編寫好安裝rpm包執行之前的以及執行之后腳本,rpm包卸載之前以及卸載之后執行的腳本。
安裝之前執行的腳本,用于創建目錄和用戶:
# cat squid.pre.sh #!/bin/sh #a script to be run before package installation useradd squid mkdir -p /home/squid mkdir -p /home/squid/var/log/squid mkdir -p /home/squid/cache chown -R squid:squid /home/squid
安裝之后執行的腳本,用于創建軟連接和添加環境變量:
# cat squid.after.sh #!/bin/sh #a script to be run after package installation cd /home/squid ln -s squid-3.4.6 squid mkdir /etc/squid cd /home/squid/squid/etc cp -r error_page /etc/squid/ cd /etc/squid/ ln -s /home/squid/squid/etc/squid.conf squid.conf sed -i 's/$PATH:$HOME\/bin/\/home\/squid\/squid\/sbin:$PATH:$HOME\/bin/' /root/.bash_profile
開始生成rpm文件
#fpm -s dir -t rpm -v 1.0.0 -n squid --pre-install /root/squid.pre.sh --after-install /root/squid.after.sh /home/squid/squid-3.4.6/
參數介紹:
# -s:源類型包
# -t:目標類型包
# -v:版本號
# -n:軟件包名稱
# --pre-install:安裝前執行的腳本
# --after-install :安裝后執行的腳本
# 需要轉換目錄放置在后面
至此,將會在你該目錄下面生成一個rpm文件
4、可能出現的錯誤
錯誤一:
checking for termcap functions library... configure: error: No curses/termcap library found
是因為沒有安裝ncurses包導致的
# yum list|grep ncurses*
錯誤二:
../depcomp: line 571: exec: g++: not found
錯誤原因沒有安裝gcc-c++包
# yum install gcc-c++
錯誤三:
./include/my_global.h:1099: 錯誤:對 C++ 內建類型 ‘bool’ 的重聲明
這個錯誤是因為先./congfigure 又裝的gcc-c++之后又make 導致的,解決方法是重新./configure,make,make install就可以恢復
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。