製作RPM包

在我們工作中,總有一些源碼包需要安裝,如果這種需求頻繁的話,我們可以考慮將源碼包製作成RPM包。


一個rpm包裏面都有什麼?

    1、RPM包的描述信息         # rpm -qpi jdk-8u77-linux-x64.rpm

    2、RPM是一個壓縮包,裏面有很多文件         # rpm -qpl jdk-8u77-linux-x64.rpm


我們執行 # rpm -ivh 具體有有哪些動作?

    1、解壓rpm包            # rpm2cpio jdk-8u77-linux-x64.rpm |cpio -id

    2、拷貝數據到對應位置


瞭解這些後,我們來看看RPM包製作的過程:


RPM包製作:

    1、安裝rpm打包工具,生成相應的目錄

    2、把源碼包複製到SOURCES目錄中

    3、在SPECS目錄中編寫nginx.spec文件

    4、執行nginx.spec文件生成RPM包,生成位置:/root/rpmbuild/RPMS/x86_64/

    

1、安裝rpm打包工具,生成rpmbuild目錄

    # yum -y install rpm-build         //安裝rpm打包工具

    # rpmbuild -ba xx.spec          //創建rpmbuild目錄,會在/root下創建rpmbuild目錄

                                               也可以手動創建,包括裏面的子目錄

    # ll /root/rpmbuild

        BUILD  

        BUILDROOT          //模擬根目錄

        RPMS                //做好的rpm包存放目錄

        SOURCES            //要做rpm包的源碼包存放目錄

        SPECS                //spec文件存放目錄

        SRPMS

        

2、將源碼包複製到SOURCES目錄中    

    # cp /opt/lnmp_soft/nginx-1.8.0.tar.gz /root/rpmbuild/SOURCES/

    

3、在SPECS目錄中編寫nginx.spec文件

    # cd /root/rpmbuild/SPECS/

    # vim nginx.spec

        Name:nginx                 //源碼包名;來源:源碼包包名

        Version:1.8.0                 //源碼包版本;來源:源碼包包名

        Release:1.0                 //RPM包的版本

        Summary:this is web server                 //RPM包概述


        #Group:                 //指定組包

        License:GPL                 //協議

        URL:www.test.com                 //地址欄

        Source0:nginx-1.8.0.tar.gz                 //指定源碼包包名


        #BuildRequires:                 //依賴包

        #Requires:                 //依賴包


        %description           //RPM包的詳細描述

        this is a web server aaaaaaaaaaaaa

        

        %prep

        %setup -q                 //作用:自動解壓源碼包,並進入解壓目錄

        

        %build

        ./configure --prefix=/usr/local/nginx                 //可以手動指定安裝路徑

        make %{?_smp_mflags}                 //自動make


        %install

        make install DESTDIR=%{buildroot}                 //自動make install

                                  安裝到buildroot中去了:/root/rpmbuild/BUILDROOT/usr/local/nginx

                                  

        %files                 //打包哪些文件?

        %doc                 //打包哪些目錄?

        /usr/local/nginx/*           //  /root/rpmbuild/BUILDROOT/usr/local/nginx/*

        

        %changelog

        

4、生成RPM包

    # rpmbuild -ba nginx.spec                //開始生成RPM包

    

    # ls /root/rpmbuild/RPMS/x86_64/          //做好的RPM包放在這裏面


接下來就找個新的環境去安裝試試吧。

    

GPL協議:GPL協議有繼承性

    1、我的軟件你可以任意複製和粘貼

    1、我的軟件你可以任意修改

    2、我的軟件你可以任意發佈和傳播


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章