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...