溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

fpm使用記錄

發(fā)布時間:2020-07-05 22:47:44 來源:網(wǎng)絡(luò) 閱讀:433 作者:shen445122 欄目:編程語言

fpm包管理工具介紹


這里還有一份google關(guān)于rpm介紹的PPT:fpm, baylisa, april 2011.pdf


所以下面重點介紹使用的過程:


1、修改rubygems的源由于國內(nèi)網(wǎng)絡(luò)原因,導(dǎo)致 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功能簡單說就是將一種類型的包轉(zhuǎn)換成另一種類型。

支持的源類型包:“dir”:將目錄打包成所需要的類型,可以用于源碼編譯安裝的軟件包


    “rpm”:對rpm進行轉(zhuǎn)換

    “gem”:對rubygem包進行轉(zhuǎn)換

    “python”:將python模塊打包成相應(yīng)的類型


支持的目標類型包:

    “rpm”:轉(zhuǎn)換為rpm包

    “deb”:轉(zhuǎn)換為deb包

    “solaris”:轉(zhuǎn)換為solaris包

    “puppet”:轉(zhuǎn)換為puppet模塊

因為我們平時使用的比較多的是rpm包,因此這里主要介紹如何將源碼安裝的包轉(zhuǎn)換為RPM包,其他功能感興趣的可以試試。


3、操作實例以安裝squid為例。源為已經(jīng)編譯安裝的目錄,制作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包執(zhí)行之前的以及執(zhí)行之后腳本,rpm包卸載之前以及卸載之后執(zhí)行的腳本。

安裝之前執(zhí)行的腳本,用于創(chuàng)建目錄和用戶:

# 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

 

安裝之后執(zhí)行的腳本,用于創(chuàng)建軟連接和添加環(huán)境變量:

# 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/

 

參數(shù)介紹:

# -s:源類型包

# -t:目標類型包

# -v:版本號

# -n:軟件包名稱

# --pre-install:安裝前執(zhí)行的腳本

# --after-install :安裝后執(zhí)行的腳本

# 需要轉(zhuǎn)換目錄放置在后面

 

至此,將會在你該目錄下面生成一個rpm文件

 

4、可能出現(xiàn)的錯誤

錯誤一:

checking for termcap functions library... configure: error: No curses/termcap library found

是因為沒有安裝ncurses包導(dǎo)致的

# yum  list|grep ncurses*

錯誤二:

../depcomp: line 571: exec: g++: not found

錯誤原因沒有安裝gcc-c++包

# yum install gcc-c++

錯誤三:

./include/my_global.h:1099: 錯誤:對 C++ 內(nèi)建類型 ‘bool’ 的重聲明

這個錯誤是因為先./congfigure 又裝的gcc-c++之后又make 導(dǎo)致的,解決方法是重新./configure,make,make install就可以恢復(fù)


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI