通過nginx源碼包製作rpm包

 
文檔信息:
文檔作者:amunlinux
文檔版本:Version 1.1
修改記錄:2017-04-04
系統環境:CentOS 6.8 64 bit
 
 
 
 
 
一、通過nginx源碼包製作rpm包
 
1.製作前環境準備:
 
安裝依賴包
yum -y install rpm-build pcre-devel openssl-devel gccgcc-c++ make
 
2.創建普通用戶
創建普通用戶製作,使用普通用戶製作rpm包(因爲root權限太大);
useraddlianlian
passwdlianlian
su– lianlian
exit               退出不了,就用su 切換
將nginx包上傳root/home/
mvnginx-1.6.2.tar.gz /home/lianlian
su– lianlian
llnginx-1.6.2.tar.gz
 
二、編寫spec規則
有默認模板的,後綴爲.spec
以下是模板的一部分內容,有的根本用不到。所以個別不用寫,照着填就好
 
1.在模板裏添加規則
vim nginx.spec
默認模板內容:
Name        定義該 rpm 包的名字,必須要填寫。
Version     定義該 rpm 包的版本號,建議和源碼包的名稱保持一致。                    
Release     1%{?dist}不需要管,系統會在版本號之後自動補齊,就是經常看到的rpm 名中的 el6 部分
Summary     定義關於該 rpm包的一些介紹。
 
Group                     定義軟件包所屬類型。
   
License                   軟件授權類型,比如 GPL、Commercial、Shareware。
 
URL                       定義軟件作者的主頁。
 
Source0:                  定義需要用到的源碼包名字
BuildRoot:                不需要管,系統用 mkstemp定義安裝或編譯時使用的虛擬目錄
作
 
BuildRequires:            定義源碼包配置時需要用到工具。該選項可有可無。
 
Requires:                 定義rpm 安裝的時候的依賴關係。該選項可有可無。
 
%description              定義描述信息,注意這裏要另起一行寫
 
%prep                     定義 rpm 包安裝前執行的腳本。在對軟件進行打包前,我們還進行其他
 
                          操作。比如解壓 tar.gz 文件。%prep 主要與%setup –q 命令配合使用,建議使用默                           認值即可。
 
%setup –q                 不需要管
 
%build                    定義源碼包的安裝配置選項
 
%install                  不需要管,系統執行安裝動作
 
%files                    定義安裝完之後生成的目錄,可以參考源碼包安裝完畢之後生成的目錄
 
%config/usr/local/httpd/conf/*        代表配置文件
 
%post                     定義 rpm 包安裝後執行的腳本。我們在安裝完畢 rpm 包後,執行軟件初
 
                          始化的動作,就可以通過%post 來達到目的。比如:apache在安裝後,將 apachectl                           拷貝成 httpd 等操作。默認 spec 模版文件不存在此選項。
 
%preun                    定義 rpm 包卸載前執行的腳本,該選項主要用於軟件升級的時候會執行。
                          默認 spec 模版文件不存在此選項。
 
%postun                   定義 rpm 包卸載後執行的腳本。默認 spec 模版文件不存在此選項。
 
%changelog                軟件的變更日誌。該選項可有可無。




 
2.關於保存*.spec報錯的解決
上述規則編寫完成後保存時會自動報一個錯誤,將會產生一個rpmduild的文件夾,但這是正常的。

 
2.1解決辦法:
移動源碼包和spec規則文件到rpmbuild文件夾下
cpnginx-1.6.2.tar.gz ./rpmbuild/SOURCES/
cp nginx.spec./rpmbuild/SPECS/

 
2.2使用rpmbuild命令生成 rpm包
cd rpmbuild/SPECS/                        或在/home/下也可以
rpmbuild -ba nginx.spec                 -ba 是輸出過程信息
 
 
三、在其他主機測試rpm包
1. 需要按照依賴包
yum -y installwireshark-gnome   
 
2. 上傳並安裝nginx RPM包
[root@xurui~]# rpm -ivh nginx-1.6.2-lianlian.e16.x86_64.rpm 
Preparing...               ########################################### [100%]
   1:nginx                 ########################################### [100%]
 
3. 查看端口開啓狀態
[root@xurui~]# netstat -anpt |grep :80
tcp        0     0 0.0.0.0:80                 0.0.0.0:*                   LISTEN      2130/nginx          
tcp        0     0 0.0.0.0:8009               0.0.0.0:*                   LISTEN      1276/rpc.statd      
 
4. 查看rpm包信息
[root@xurui~]# rpm -qi nginx
Name        : nginx                        Relocations: (notrelocatable)
Version     : 1.6.2                             Vendor: (none)
Release     : lianlian.e16                  Build Date: 2017年04月04日 星期二 01時37分11秒
InstallDate: 2017年03月21日星期二 11時44分28秒      Build Host: xr-c6.8
Group       : System nginx/Web              Source RPM: nginx-1.6.2-lianlian.e16.src.rpm
Size        : 610255                           License: GPL
Signature   : (none)
URL         : http://www.nginx.org
Summary     : This is nginx server
Description:
Systemnginx/web by lianlian
[root@xurui~]#
 
 
 
 
 
 
End
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章