工作中有如下情況需要將檔案打包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 指定包的版...