2013-03-19 136 views
1

我有一個圖書館,我分發給我的客戶。我正在探索將我的第三方依賴關係作爲動態鏈接依賴關係的想法。在這種情況下,爲我的客戶部署變得更加複雜,因爲他們必須先安裝我的依賴關係才能使用我的庫。我對此有點新,所以我有一個廣泛的問題:處理安裝依賴關係的最佳方法是什麼?

假設我的所有客戶都在Linux上,是一個RPM包,它只是將依賴關係.so文件安裝到系統庫目錄中是最佳路徑?從我正在閱讀的關於RPM的內容來看,這不是真正意義上的使用方式。我想我正在尋找的是Linux的一種「安裝程序」,但也許這樣的事情不存在。

是隻建立一個包,其中包括所有相關的二進制文件(和許可,如適用)的最佳方式,並且對如何安裝說明?

回答

1

你有多種選擇:

  • 靜態鏈接(如果在播放許可證允許的話)
  • 支持各種發行版和所有的人提供包(可行性取決於誰是你的客戶) 。最簡單的選擇爲您的客戶,最複雜的一個給你。
  • 提供您安裝在Windows風格的自包含的目錄結構中的應用(如/opt/myapp/home/someuser/myapp)的安裝程序。將共享庫放在那裏,並通過LD_LIBRARY_PATH相應設置的腳本啓動。我見過Loki遊戲,Adobe Reader,Google Earth和其他遊戲使用的這個選項。

不要:

  • 提供一個自定義安裝程序,複製您的二進制文件和庫在標準的目錄結構。這可能會覆蓋客戶擁有的其他應用程序所需的特定庫版本。由於發行版的軟件包管理不知道這些文件,它也留下了可怕的混亂。
  • 爲所有人提供了一個rpm。在非rpm發行版中,這需要您的客戶手動轉換包以適應其包裹管理系統。
+0

感謝完整的答案!我有一個後續步驟:對於選項2(支持一系列發行版...),這裏是一個包的例子?我們是否在談論像yum和apt-get這樣的軟件包管理器的軟件包? – Ben 2013-03-19 23:37:24

+0

@Ben是的,確切的!例如,你可以爲Ubuntu 12.04和12.10提供'deb'軟件包,RHEL6和Fedora提供rpm'等等。當然,你需要測試它們:)。 – us2012 2013-03-19 23:42:02

相關問題