前言
在centos下執行rpmbuild -ba package.spec
的時候,通常會要求系統也安裝對應的依賴包,這樣就會導致系統裝上許多沒用的軟體包,佔用空間。於是搜尋了一下,發現可以通過mock
命令來解決這個問題。
構建方法
首先是安裝mock
,由於mock
是在epel
倉庫裡的,所以還需要先裝epel
倉庫
yum -y install epel-releaseyum -y install mock
通常情況下使用rpmbuild
會新開一個使用者,比如builder
,這樣就不會汙染系統內容。我們需要把builder
使用者加入mock
使用者組
usermod -a -G mock builder
mock
下使用rebuild
需要src.rpm檔案,所以如果只有.spec檔案的話,需要先產生src.rpm檔案
rpmbuild -bs package.spec
這樣在SRPM目錄下就會產生一個src.rpm檔案了,然後就可以通過mock
命令來rebuild rpm
檔案
首先需要初始化mock
環境,在/etc/mock檔案夾下有各個環境的設定檔,比如centos 6就是epel-6-x86_64,初始化命令就是:
mock -r epel-6-x86_64 --init
初始化完畢之後就可以開始構建了
mock -r epel-6-x86_64 rebuild package-1.1-1.src.rpm
構建完畢,rpm
檔案會存放在/var/lib/mock/epel-6-x86_64/result目錄下。當然我們可以通過–resultdir
參數來指定rpm
檔案的組建目錄
mock -r epel-6-x86_64 rebuild package-1.1-1.src.rpm --resultdir=/home/builder/rpms
最後執行clean
命令清理環境
mock -r epel-6-x86_64 --clean
總結
以上就是關於Centos下使用mock構建rpm的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流。