Linux
RedHat:是否可以在一種模擬環境中安裝軟體包來建構 RPM
是否有允許將 RPM .spec 的依賴項安裝到隔離環境中的工具?我不會在系統上全域安裝此類依賴項,而且我無法這樣做,因為我沒有 root 權限。
原因
我想建構一個依賴於較新版本的B的包****A(不能在系統上全域安裝)。
我喜歡建構較新版本的B並讓建構工具將B
-devel
安裝到隔離環境中,以提供建構A所需的所有文件。解決方案
- 有什麼工具可以做到這一點嗎?
- 如果沒有,在嘗試使用 say 執行此操作時我應該注意什麼
chroot
?- 這是一個不好的做法嗎?
是的,該工具被呼叫
mock
並且它在 EPEL 中。典型用法:
rpmbuild -bs mypackage.spec mock -r epel-6-x86_64 mypackage-0.1-1.src.rpm
這實際上是建構 RPM 的首選方式,正是因為它將程序與系統隔離開來,因此不會引入意外的依賴關係。
您可以修改其中的文件
/etc/mock
以將其拉入您自己的包、私有倉庫等,或者查看文件以獲取有關如何mock
手動將包添加到 chroot 環境的資訊。請注意,應將使用者添加到
mock
允許使用的組中mock
。並非巧合的是
koji
,Red Hat 使用的建構伺服器呼叫mock
來建構每個單獨的包。如果您必須一直建構大量包,則可能值得考慮設置koji
建構伺服器。