原始碼包製作RPM包

2021-09-26 08:41:42 字數 1711 閱讀 4220

首先安裝工具,rpm-build可能在rpmdevtools裡已經包含

#yum install rpm-build

#yum install rpmdevtools

rpmbuild預設工作路徑的確定,通常由在/usr/lib/rpm/macros這個檔案裡的乙個叫做%_topdir的巨集變數來定義。如果使用者想更改這個目錄名,rpm官方並不推薦直接更改這個目錄,而是在使用者家目錄下建立乙個名為.rpmmacros的隱藏檔案(注意前面的點不能少,這是linux下隱藏檔案的常識),然後在裡面重新定義%_topdir,指向乙個新的目錄名。這樣就可以滿足某些「高階」使用者的差異化需求了。通常情況下.rpmmacros檔案裡一般只有一行內容   

執行如下rpmdev-setuptree生成rpmbuild的工作目錄

目錄名說明

macros中的巨集名

build

編譯rpm包的臨時目錄

%_builddir

buildroot

編譯後生成的軟體臨時安裝目錄

%_buildrootdir

rpms

最終生成的可安裝rpm包的所在目錄

%_rpmdir

sources

所有源**和補丁檔案的存放目錄

%_sourcedir

specs

存放spec檔案的目錄(重要)

%_specdir

srpms

軟體最終的rpm原始碼格式存放路徑(暫時忽略掉,別掛在心上)

%_srcrpmdir

spec檔案的巨集定義:

rpmbuild --showrc | grep topdir #工作車間目錄:_topdir /root/rpmbuild

-14: _builddir %/build

-14: _buildrootdir %/buildroot

-14: _rpmdir %/rpms

-14: _sourcedir %/sources

-14: _specdir %/specs

-14: _srcrpmdir %/srpms

-14: _topdir /root/rpmbuild

rpmbuild --showrc顯示所有的巨集,以下劃線開頭:

spec檔案資訊:

%description: 軟體的詳細說明

%define: 預定義的變數,例如定義日誌路徑: _logpath /var/log/weblog

%prep: 預備引數,通常為 %setup -q

%build: 編譯引數 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx/……

%install: 安裝步驟,此時需要指定安裝路徑,建立編譯時自動生成目錄,複製配置檔案至所對應的目錄中(這一步比較重要!)

%pre: 安裝前需要做的任務,如:建立使用者

%post: 安裝後需要做的任務 如:自動啟動的任務

%preun: 解除安裝前需要做的任務 如:停止任務

%postun: 解除安裝後需要做的任務 如:刪除使用者,刪除/備份業務資料

%clean: 清除上次編譯生成的臨時檔案,就是上文提到的虛擬目錄

%files: 設定檔案屬性,包含編譯檔案需要生成的目錄、檔案以及分配所對應的許可權

%changelog: 修改歷史

詳細介紹在:

將原始碼包製作成RPM包

將原始碼包製作成rpm包 1 素材 nginx 1.8.0.tar.gz nginx.service 2 安裝打包工具 root vh01 yum install y rpm build 3 生成工作目錄 root vh01 vim nginx.spec 直接存檔退出 root vh01 rpmbu...

製作原始碼軟體的RPM包

製作原始碼軟體的rpm包 使用nginx 1.12.2版本的原始碼軟體,生產對應的rpm包軟體 具體步驟 1.安裝rpm build軟體 yum y install rpm build 2.生成rpmbuild目錄結構 rpmbuild ba nginx.spec ls root rpmbuild ...

安裝RPM包或原始碼包

在windows系統下安裝軟體很簡單,只要雙擊字尾為.exe的檔案即可。然而linux下安裝軟體就沒那麼容易了前面我們多次使用yum命令,它是red hat 所特有的安裝rpm程式包工具。使用rpm工具安裝某乙個程式包時,有可能會因為該程式包依賴另乙個程式包而無法安裝 而使用yum工具時,就可以連同...