2013-02-26 78 views
0

我們正在切換到使用puppet進行基於Linux的系統的配置管理。我們有幾個包含自定義二進制安裝程序的第三方軟件包(認爲是JDK),並且正在使用RPM將它們構建到僅限本地的非分佈式軟件包中。一個麻煩的軟件包有一個安裝過程,它需要以下內容:a)解壓縮二進制包到安裝目錄x。 b)運行「安裝程序」,提示許可驗收,然後修改/嵌入安裝目錄路徑到許多後續安裝目錄中的腳本從第三方二進制軟件包構建RPM

我在定義一個spec文件來安裝這個軟件包時遇到了問題。對於初學者來說,在%install中,我處理步驟a,然後從步驟b運行安裝程序。按預期方式將該軟件包安裝到$ RPM_BUILD_ROOT中。然而,包腳本都嵌入了$ RPM_BUILD_ROOT /,而不是嵌入安裝目錄的腳本。有沒有辦法運行這個安裝程序,就像它在chroot環境或其他一些替代方法一樣?任何幫助讚賞。

+0

[mach](http://www.howtoforge.com/building-rpm-packages-in-a-chroot-environment-using-mach)可能是你正在尋找的。 – 2013-02-26 09:45:12

+0

@ AaronD.Marasco,謝謝馬赫看起來像一個很好的前景。我們僅限於標準的CentOs yum軟件倉庫,我沒有看到它,但我可以解決這個問題。我會給你道具,但我的名聲禁止它;-)。 – Andy 2013-02-26 19:14:39

回答

1

在Fedora下(我懷疑RHEL/CentOS)有mock正是你描述的任務類型。它用於構建軟件包,但「填充chroot」部分應該很容易(錯誤)用來創建所需的環境。