1. 程式人生 > >詳解封裝原始碼包成RPM包

詳解封裝原始碼包成RPM包

原始碼編譯安裝是最常用安裝軟體方式,可是面對工作量巨大時候就需要我們的RPM包上場了,統一的模組,一鍵安裝。在面對一定數量的伺服器上,RPM就可以為我們節省大量的時間。
RPM可以在網上下載,但是當我們需要用到特殊模組時,這些網上的RPM就顯得那麼的蒼白無力了。所以自行封裝打包成了一和需求。現在就介紹如何封裝打包。

打包流程

1)準備原始碼軟體
2)安裝rpm-build
3)編寫編譯配置檔案
4)編譯RPM包

開始

1.安裝rpm-build軟體包

rpm-bulid 打包所用的工具

[root@W1 root]# yum install rpm-build

2.生成rpmbuild目錄結構

[root@W1 root]# rpmbuild -ba nginx.spec
錯誤:stat /root/nginx.spec 失敗:沒有那個檔案或目錄

會報錯,不過沒問題 需要的只是生成的目錄rombuild

[root@W1 rpmbuild]# pwd
/root/rpmbuild

[root@W1 rpmbuild]# ls
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

RPMS(做好後的成品放置區)
SOURCES(放置原始碼包)
SPECS(配置檔案)

    -

3.將原始碼軟體複製到SOURCES目錄

[root@W1
rpmbuild]# cp nginx-1.8.0.tar.gz /root/rpmbuild/SOURCES/

記得是原始碼包

4.建立並修改spec配置檔案

[[email protected] rpmbuild]# vim /root/rpmbuild/SPECS/nginx.spec
檔案字尾必須是spec,格式嘛
如何修改參考內德給的圖

這裡寫圖片描述
!!標註的地方不能隨便該
這是nginx修改的參考

[[email protected] rpmbuild]# cat SPECS/nginx.spec 
Name:nginx  
Version:1.8.0   
Release:1.rhel7
Summary:The is a Web Server,to nginx

#Group: 
License:GPL 
URL:www.Nedved.cn   
Source0:nginx-1.8.0.tar.gz  

BuildRequires:  gcc pcre openssl-devel
#Requires:  

%description
This is a Web server nginx %prep %setup -q %build ./configure --with-http_ssl_module --with-http_stub_status_module make %{?_smp_mflags} %install make install DESTDIR=%{buildroot} %files %doc /usr/local/nginx/* %changelog

到這裡就基本上打包完成了

5.使用配置檔案建立RPM包

1)安裝依賴軟體包

[root@W1 rpmbuild]# yum install gcc pcre openssl-devel -y

2)rpmbuild建立RPM軟體包

 [root@W1 rpmbuild]# rpmbuild -ba SPECS/nginx.spec
[[email protected] rpmbuild]# ls RPMS/x86_64/
nginx-1.8.0-1.rhel7.x86_64.rpm  nginx-debuginfo-1.8.0-1.rhel7.x86_64.rpm

建立RPM軟體包後在檢視RPMS就能看到封裝好的包了

6.測試RPM包是否可使用

rpm -qpi RPMS/x86_64/nginx-1.8.0-1.rhel7.x86_64.rpm //檢視封裝資訊
rpm -qpl RPMS/x86_64/nginx-1.8.0-1.rhel7.x86_64.rpm //檢視安裝路徑
rpm -ivh RPMS/x86_64/nginx-1.8.0-1.rhel7.x86_64.rpm //裝包
rpm -qa |grep nginx //檢視是否安裝

OK到這裡就大功告成了。
最後就總結下:
1.準備封裝工具
2.改安裝配置檔案,在裡面新增所需要的模組,附加一些安裝資訊。
3.然後就是測試了