2016-06-13 49 views
3

我正在研究使用wxWidgets並需要作爲已編譯的二進制應用程序進行分發的C++ Linux應用程序。項目主管已經指定我們要包含應用程序的所有依賴關係,以便最終用戶不需要安裝任何東西來運行應用程序,只要他們已經安裝了標準系統組件(libc等)。我認爲這個要求是最終用戶要求的。我知道這不是您可能認爲是Linux應用程序的「正常」分發過程。發佈使用wxWidgets的C++ Linux應用程序的選項

對於自己沒有很多依賴關係的簡單庫,這不是問題。但是對於wxWidgets我遇到了類(在應用程序中使用)需要webkitgtk的問題。 webkitgtk本身有很多依賴關係,可能有自己的依賴關係,依此類推。基本上,我想通過在應用程序中包含所有東西來打開真正的蠕蟲病毒庫,而項目中更高級的開發人員似乎也同意這一點。

所以我想知道,我分配這樣的應用程序有什麼選擇?我試過尋找關於這方面的信息,而流行的看法似乎是讓最終用戶安裝wxWidgets。這些是我遇到的選項:

  • 將項目領導需要的所有依賴項編譯爲共享庫。這樣做的缺點是有許多庫需要擔心,這會導致顯着的膨脹。
  • 要求最終用戶安裝wxWidgets(在GTKwebkitgtk之上)。這裏的缺點是用戶必須安裝多個依賴關係,如果他們不在包管理器中的上述合適版本的發行版上,這對他們來說可能是一件麻煩事。這也意味着我們不能提供特別要求的東西。
  • 要求安裝最終用戶GTKwebkitgtk,但不要安裝wxWidgets。與上述相同,但依賴性較少。另一個缺點是,如果安裝了不同版本的依賴關係,那麼可能會存在版本兼容性問題,這與用於構建打包的wxWidgets庫的版本相關。

我是否正確評估了這些不同選項的優缺點?有沒有我錯過的選項?

謝謝!

回答

3

David, 最好的解決方案可能是要求用戶安裝X11,GTK + {2,3}和WebKit-GTK。 wxWidgets可以靜態鏈接到應用程序。

您可以要求用戶使WebKit-GTK的版本至少爲X.Y.Z,並且應該滿足要求。集成WebKit-GTK及其所有依賴項,特別是因爲依賴於GTK +本身將非常困難。所以,如果你走這條路線,你會被擰緊。

2

作爲Linux用戶我投票通過包管理器手動依賴安裝。這並不難,甚至可以自動完成,如果你提供包(不只是二進制)。運行運行時可能會導致問題(例如Debian上的Steam)。另一種選擇是提供兩種風格:全包和依賴性要求。

相關問題