Linux

RedHat:是否可以在一種模擬環境中安裝軟體包來建構 RPM

  • January 6, 2013

是否有允許將 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建構伺服器。

引用自:https://serverfault.com/questions/463134