FPM製做RPM包

部署軟件的三種方式

一、編譯安裝軟件,優勢是能夠定製化安裝目錄、按需開啓功能等,缺點是須要查找並實驗出適合的編譯參數,諸如MySQL之類的軟件編譯耗時過長。nginx

二、yum安裝軟件,優勢是全自動化安裝,不須要爲依賴問題發愁了,缺點是自主性太差,軟件的功能、存放位置都已經固定好了,不易變動。vim

三、編譯源碼,根據本身的需求作成定製RPM包–>搭建內網yum倉庫–yum安裝。結合前二者的優勢,暫未發現什麼缺點。可能的缺點就是RPM包的通用性差,只能適用於本公司的環境。另一般人不會定製RPM包。這是中大型互聯網企業運維自動化的必要技能。ruby

安裝FPM打包工具

yum -y install ruby ruby-devel rubygems gcc openssl-devel rpm-build
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem install  fpm

FPM工具經常使用參數

參數bash

參數說明app

-s運維

指定源類型ide

-t工具

指定目標類型,即想要製做爲何包post

-nui

指定包的名字

-v

指定包的版本號

-C

指定打包的相對路徑 

-d

指定依賴於哪些包

-f

第二次打包時目錄下若是有同名安裝包存在,則覆蓋它

-p

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

--post-install 

軟件包安裝完成以後所要運行的腳本;同--after-install

--pre-install  

軟件包安裝完成以前所要運行的腳本;同--before-install

--post-uninstall

軟件包卸載完成以後所要運行的腳本;同--after-remove

--pre-uninstall

軟件包卸載完成以前所要運行的腳本;同--before-remove

案例:製做nginx的RPM包

yum install -y pcre-devel openssl-devel
mkdir -p /server/tools
cd /server/tools
wget -q http://nginx.org/download/nginx-1.10.2.tar.gz
ls -l nginx-1.10.2.tar.gz
useradd www -s /sbin/nologin -M
tar xf nginx-1.10.2.tar.gz
cd nginx-1.10.2
./configure  --user=www --group=www --prefix=/application/nginx-1.10.2 --with-http_stub_status_module  --with-http_ssl_module
make
make install
ln -s /application/nginx-1.10.2 /application/nginx
安裝nginx
[root@test ~]# cd /server/scripts/
[root@test scripts]# vim nginx_install_devel.sh
#!/bin/bash
useradd -M -s /sbin/nologin www -u 666
ln -sf /application/nginx-1.10.2   /application/nginx
ln -s /application/nginx/sbin/* /usr/local/sbin/
編寫腳本(for --post-install)
//注意:在進行打包的時候要先中止nginx

[root@test ~]#  fpm -s dir -t rpm -n nginx -v 1.10.2 \
-d 'pcre-devel,openssl-devel' \
--post-install /server/scripts/nginx_install_devel.sh \
-f /application/nginx-1.10.2/ 
打包-製做rpm包
//推薦使用yum 安裝
//這個命令會自動先安裝rpm包的依賴,而後再安裝rpm包。

yum -y localinstall  nginx-1.10.2-1.x86_64.rpm
相關文章
相關標籤/搜索