2011-06-10 47 views
1

在我作爲SysAdmin的時候,我遇到了一些應用程序,它們不提供rpm包來安裝在基於redhat的發行版上 - 只有一個源代碼tarball 。源代碼tarball不提供可以簡化rpm包創​​建過程的spec文件。相反,源代碼tarball只提供一個必須以root身份執行的bash/ksh /腳本,以在系統上安裝應用程序。從源代碼tarball創建一個rpm包 - 但tarball不包含spec文件,只是一個安裝腳本

我試圖創建一個rpm包,它基本上運行安裝腳本來執行安裝腳本。我還試圖通過嘗試以非root用戶的身份執行軟件包並儘可能修改安裝腳本以確保腳本的安裝目錄指向rpm環境/宏,從而做正確的事情。但是,使用一個長達幾百行的複雜安裝腳本,它也會調用其他腳本......好吧,我在這個嘗試中肯定會失敗。

是否有更好的方法來打包這樣的.spec-less源碼tarballs?會更好的解決方案是:

  1. 安裝
  2. 安裝的源碼包與所提供的安裝腳本
  3. 採取系統快照安裝後不知何故把應用程序之前的系統快照,確定安裝所做的更改/添加
  4. 將更改/添加列表放在spec文件中,並以這種方式創建rpm包?

任何有用/相關/啓發/有趣/深刻的意見和建議對這個問題將非常感激。

預先感謝您

回答

0

我認爲最好的辦法是要求上游,以提供應用的規範文件。另一種方式可能是請求體驗包維護者打包應用程序。或者,您可以探索到checkinstall,因爲它使用Makefile跟蹤安裝文件。如果你想打包自己,你應該閱讀這個link,因爲它提供瞭解釋和許多例子。

0

我見過很多像你提到的腳本,我懷疑我可以肯定地告訴你這家公司向你推銷這些可怕的安裝。

你最好打賭是要求一個適當的可安裝包。閱讀爲什麼一個軟件包比配置更好; make; make-install,並且比這個install.sh廢話更好。有了這一點,即使是談論要點,也要儘量讓他們進入第三個千年。這將是艱難的,但最終是最有價值的。

除此之外,您將需要構建該包(現在您已經閱讀了原因)。不幸的是,有些應用程序和供應商的有效載荷無法打包,因爲它們編譯,查詢目標主機,查找許可證,編譯更多等等。我在這裏的偏見是很好的。