前言
在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的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答
圖片精選