如何用nginx原始碼製作rpm包的詳解

2021-09-05 03:42:52 字數 2408 閱讀 5484

linux

分發版中。它生成具有.rpm副檔名的檔案。使用rpm安裝軟體和管理軟體非常的方便。而這節我們不是介紹如何使用rpm安裝或管理軟體,而是如何把原始碼製作成rpm包。

我們日常工作一般會使用原始碼包安裝軟體,因為原始碼包相對靈活多變,操作自由,唯一的問題就是容易編譯出錯。rpm包安裝簡單方便,唯一問題就是不能自定義引數且更新的速度相對於原始碼慢很多。

下面我們就研究一下如何自己製作rpm包,我們以nginx原始碼為例

1、檢視作業系統版本和核心版本

2、建立相關目錄

/usr/src/redhat/sources    //存放源**,補丁,圖示等檔案。

/usr/src/redhat/specs        //存放用於管理rpm製作程序的spec檔案。

/usr/src/redhat/build         //解壓後的檔案存放在這裡。

/usr/src/redhat/rpms          //存放由rpmbuild製作好的二進位製包。

/usr/src/redhat/srpms                    //存放由rpmbuild製作好的原始碼包。

4、手工建立spec檔案,由於spec檔案是由spec語言編寫的,請注意spec語言的語法。

spec檔案內容如下:

5、開始rpm製作

在製作rpm包之前,需要安裝必要的編譯工具,如rpmbuild,gcc等。

開始編譯生成rpm包

cd /usr/src/redhat/specs/  

rpmbuild -bb nginx.spec  //-ba 引數表示同時生成二進位製包和原始碼包 -bb 引數表示只生成二進位製包

經過一段時間的編譯後最終生成了rpm包檔案

#############################################省略部分顯示##############################################

如圖所示,在/usr/src/redhat/rpms/x86_64/該目錄下生成了我們需要的rpm包,由於我編譯的作業系統平台是64bit的,所以生成的rpm包也是64位的檔案。在指定的目錄下生成rpm,通常用%_topdir變數,需要在巨集配置檔案中指定,配置檔案稱為macrofiles,它們通常為 /usr/lib/rpm/macros:/usr/lib/rpm/macros.*:~/.rpmmacros,這個在rhel 5.8中可以通過rpmbuild --showrc | grep macrofiles 檢視,我們這裡在.rpmmacros檔案中定義了生產rpm包的路徑為/usr/src/redhat

最後安裝生成的rpm包

至此nginx原始碼製作並安裝成功!

nginx原始碼分析 從原始碼看nginx框架總結

nginx原始碼總結 1 中沒有特別繞特別彆扭的編碼實現,從變數的定義呼叫函式的實現封裝,都非常恰當,比如從函式命名或者變數命名就可以看出來定義的大體意義,函式的基本功能,再好的架構實現在編碼習慣差的人實現也會黯然失色,如果透徹理解 的實現,領悟架構的設計初衷,覺得每塊 就想經過耐心雕琢一樣,不僅僅...

nginx原始碼安裝

nginx原始碼安裝 安裝環境 作業系統 ubuntu 12.04 nginx v1.4.2 pcre v8.33 zlib v1.2.8 1.安裝zlib 1 解壓縮 plain tdtc100 ubuntu tar zxvf zlib 1.2.8.tar.gz 2 安裝 plain tdtc10...

Nginx原始碼安裝

解壓 tar zxvf nginx 1.10.0.tar.gz 執行下面的命令安裝nginx的依賴庫 yum y install gcc pcre pcre devel zlib zlib devel openssl openssl devel我這裡只配置安裝到 opt目錄下,其它選項可執行.con...