rpmbuild打包rpm包總結

2021-10-17 03:32:56 字數 805 閱讀 4189

最近需要用rpmbuild打包rpm包,遇到了一些問題,解決了一些問題,記錄一下做個備忘。

作業系統是linux。

網上關於spec檔案格式的說明很多,事例也很多,不再重複了,只記錄乙個自己遇到的問題:

如果你的原始碼已經編譯完成,不需要使用spec去編譯,那麼%prep %build欄位可以不加。

這兩個欄位的作用是去工作目錄的source目錄解壓原始碼包到build目錄,然後執行構建操作,我的工程已經構建完成了,因此不需要往source目錄放原始碼tar包再構建一遍,所以直接刪掉這兩個字段即可。

ps:我的使用場景是直接git clone下來**用cmake編譯,然後再使用rpmbuild打包(沒有用cpack),之前沒有刪掉%prep %build欄位,導致一直報錯source目錄下沒有原始碼tar包,直接刪掉就解決了。

rpmbuild打包時需要在工作目錄下新建build source rpms srpms等目錄,各個目錄的具體作用網上有很多說明,這裡不再贅述。

預設情況下,工作目錄是由%_topdir變數指定的,這個變數預設值一般情況下是環境變數裡的$home路徑(可以通過export | grep home檢視 ),因此想要改變預設路徑,就需要改變%_topdir的值。

比較簡單的方法是通過--define給rpmbuild傳參,指定工作目錄:

rpmbuild --define "_topdir=/usr/local/output" -bb ***.spec

上述命令就會在/usr/local/output目錄下面的rpms目錄下生成打包好的rpm包(-bb 命令只生成二進位制rpm包,不生成源rpm包)。

以上。

使用rpm build製作rpm包

本實驗使用rpm build將nginx原始碼包製作成rpm包 nginx版本 nginx 1.16.1 1 1.安裝rpm build軟體 yum y install rpm build 2.生成rpmbuild目錄結構 rpmbuild ba mmm 提示沒有檔案或目錄,此時會在當前目錄下生成乙...

rpmbuild製作rpm安裝包

寫在前面 用源 製作rpm包的方法 1.源 打包 將源 打包,如 stardict 2.0.tar.gz,並將檔案放到spec檔案source段所描述的路徑下,通常為 usr src redhat sources 目錄下 不同的linux發布版本略有不同,如opensuse為 usr src pac...

rpmbuild製作rpm安裝包

寫在前面 用源 製作rpm包的方法 1.源 打包 將源 打包,如 stardict 2.0.tar.gz,並將檔案放到spec檔案source段所描述的路徑下,通常為 usr src redhat sources 目錄下 不同的linux發布版本略有不同,如opensuse為 usr src pac...