使用FPM 製作 rpm deb軟體包

2021-07-24 14:52:01 字數 3113 閱讀 1582

工作中有如下情況需要將檔案打包rpm:

避免重複工作,將原始碼程式打包為rpm

使用yum發布專案,專案打包為rpm其他

使用fpm,打包rpm就和tar打包檔案一樣簡單。

# 安裝ruby

yum -y install ruby rubygems ruby-devel gcc rpm-build

# 新增阿里雲ruby倉庫,移除原生的ruby倉庫

gem sources -a --remove

# 檢視當前ruby倉庫

gem sources -l

# 安裝fpm

gem install fpm

如果提示ruby版本低,需要安裝高版本ruby,無提示則忽略以下內容

#  install rvm ( ruby version manager )

curl -ssl | gpg2 --import

curl -l get.rvm.io | bash -s stable

# setup rvm environment

source /etc/profile.d/rvm.sh

# install required ruby version

rvm install 1.9

.3# rvm install 2.3.1 # install another version ( if required )

# rvm use 1.9.3 --default # setup default ruby version

# ruby --version # check current ruby version

實現安裝rpm將會把index.html放到/data/site/目錄下

mkdir -p /tmp/rpm/data/site/ 

touch /tmp/rpm/data/site/index.html

打包rpm

fpm -s dir -t rpm -n website -v

1.0.1

-c /tmp/rpm/

檢視rpm內檔案

rpm -qpl website-1.0

.1-1.x86_64.rpm

安裝rpm

rpm -ivh website-1.0

.1-1.x86_64.rpm

檢視安裝資訊

# rpm -qa | grep website

website-1.0

.1-1.x86_64

# ll /data/site/index.html

-rw-r--r-- 1 root root 0 sep 12

07:50 /data/site/index.html

-s:指定源型別

• dir: 將目錄打包成所需要的型別,可以用於原始碼編譯安裝的軟體包

• rpm: 對rpm進行轉換

• gem: 對rubygem包進行轉換

• python: 將python模組打包成相應的型別

• ……

-t:指定目標型別,即想要製作為什麼包(deb, rpm, solaris, etc)

-n:指定包的名字

-v:指定包的版本號

-c:指定打包的相對路徑

-d:指定依賴於哪些包 -d 'name'

or -d 'name > version'

-f:第二次包時目錄下如果有同名安裝包存在,則覆蓋它

-p:輸出的安裝包的目錄,不想放在當前目錄下就需要指定

--post-install:軟體包安裝完成之後所要執行的指令碼;同--offer-install

--pre-install:軟體包安裝完成之前所要執行的指令碼;同--before-install

--post-uninstall:軟體包解除安裝完成之後所要執行的指令碼;同--offer-remove

--pre-uninstall:軟體包解除安裝完成之前所要執行的指令碼;同—before-remove

使用fpm打包deb軟包,由於fpm和debian打包規則不一致,使用deb-no-default-config-files禁用這種預設行為

fpm -s dir -t deb -n nginx -v

1.0.2

-d'ntpdate'

-c /usr/local/nginx/

--deb-no

-default

-config

-files

命令

資訊dpkg -i package.deb

安裝包dpkg -r package

刪除包dpkg -p package

刪除包(包括配置檔案)

dpkg -l package

列出與該包關聯的檔案

dpkg -l package

顯示該包的版本

dpkg –unpack package.deb

解開 deb 包的內容

dpkg -s keyword

搜尋所屬的包內容

dpkg -l

列出當前已安裝的包

dpkg -c package.deb

列出 deb 包的內容

dpkg –configure package

配置包軟體包本地有安裝本地包,沒有聯網安裝。

# centos 下:

yum -y install website-1.0

.1-1.x86_64.rpm

yum localinstall website-1.0

.1-1.x86_64.rpm

# ubuntu 下:

dpkg -i nginx_1.0

.2_amd64.deb ;apt-get -f install

利用fpm製作rpm包

使用fpm製作rpm包 安裝如下 製作rpm包,需要提前編譯好原始碼,這裡是將整個目錄打包成rpm包的 幫助資訊 n 生成的package名字 p 生成的package檔案輸出位置 v 生成的package版本 d,depends 生成的package依賴於什麼軟體,通常為 d name 或這 d ...

基於FPM製作RPM包

1 搭建epel yum源 root localhost rpm ivh epel release latest 7.noarch.rpm 安裝擴充套件源 root localhost yum.repos.d ls a epel release latest 7.noarch.rpm epel te...

使用fpm命令製作rpm包並安裝

工作中有如下情況需要將檔案打包rpm 避免重複工作,將原始碼程式打包為rpm 使用yum發布專案,專案打包為rpm其他 以前打包rpm是乙個非常複雜的一件事情,自從有了fpm,打包rpm就和tar打包檔案一樣簡單 s 指定源型別 t 指定目標型別,即想要製作為什麼包 n 指定包的名字 v 指定包的版...