亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何分發 Go 應用程序?

如何分發 Go 應用程序?

Go
一只斗牛犬 2021-07-03 05:24:43
我已經用 Go 編寫了一個應用程序。它有兩個在編譯之前需要滿足的外部依賴項。在 Go 生態系統中,為一個簡單的安裝過程(包括安裝那些遠程 deps)打包這個應用程序的最佳方式是什么?用戶將如何安裝我的應用?
查看完整描述

3 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

  • 如果您希望用戶編譯您的應用程序,并且該應用程序依賴于第三方包或資產,那么我建議您只針對受支持的平臺進行交叉編譯并提供二進制文件。

  • 如果您有要與應用程序一起提供的資產(例如,配置文件),那么要么: a) 將二進制文件與資產一起打包并 tar/zip 壓縮;b) 對資產進行 base64 編碼并將它們編譯成二進制文件,請參見此處的一個很好的示例或 c) 創建一個為用戶執行此操作的構建/安裝腳本。

如果您能澄清您的確切要求,則更容易更直接地回答。


查看完整回答
反對 回復 2021-07-05
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

除了您可能在代碼中強加的任何依賴項之外,Go 二進制文件沒有運行時依賴項。(它的運行時庫包含在編譯的可執行文件中。)

因此,您可以按照從 C、C++ 或其他代碼編譯的任何其他靜態鏈接二進制文件的方式分發您的應用程序。

在 Linux 上,您可以為此使用適當的工具創建 .rpm 或 .deb 文件。在 Windows 上,您可以使用InnoSetup 之類的工具創建安裝程序。


查看完整回答
反對 回復 2021-07-05
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

Go 生成一個二進制文件。如果您的外部依賴項是編譯時依賴項,那么您的用戶無需擔心它們——它們已經被編譯進去了。

如果它們是運行時依賴項,那么它就是分發 exe 和相關資源的問題,任何安裝程序都可以為您完成 - 無論 exe 是否是用 Go 編寫的都無關緊要。編輯:如果它絕對必須是單個二進制文件,即使有運行時依賴項,那么您需要將運行時依賴項轉換為編譯時依賴項。一種方法是 elithrar 建議的方法。

從 Go 的角度來看,您唯一需要擔心的是您已經為用戶平臺編譯了代碼。


查看完整回答
反對 回復 2021-07-05
  • 3 回答
  • 0 關注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號