2012-04-30 73 views
103

展望golang包如何積極地發展和提高我不知道如何與封裝版本的問題就解決了?如何去更新第三方軟件包?

我看到一種方法是將第三方包存儲在項目文件夾下。

但是,如果我安裝它與go get

回答

183

go get將安裝在GOPATH(可能包含冒號分隔的目錄列表的環境變量)列出的第一個目錄中。您可以使用go get -u來更新現有的包。

您還可以使用go get -u all更新您的GOPATH

所有程序包的大型項目,它可能是合理的,對每一個項目創建不同的GOPATHs,使更新項目一庫不會造成B工程問題

類型go help gopath瞭解關於GOPATH環境變量的更多信息。

+2

謝謝! 'go get -u'是我想過的東西 – shalakhin

+2

是否有可能將所有軟件包更新到最新版本,有點像軟件包更新? – chourobin

+54

應該是'go get -u all' 對不起,以防萬一其他人在尋找。 –

22

@tux答案是偉大的,只是想補充一點,你可以使用go get更新特定軟件包:

go get -u full_package_name 
8

由於問題提到第三方庫,而不是所有包,那麼你可能要回落到使用通配符。

用例的存在:我只是想更新從Github上VCS獲得了所有我的包,那麼你就只說:

go get -u github.com/... // ('...' being the wildcard). 

這將繼續前進,只有在更新您的GitHub包當前$GOPATH

同樣也適用於VCS中也說,你想,因爲他們已經發布了,你依賴於一個修補程序只從ogranizaiton A的回購的升級所有的包:

go get -u github.com/orgA/... 
3

以上answeres存在以下問題:

  1. 他們更新的一切,包括你的應用程序(如果你有未提交的更改)。
  2. 他們更新你可能已經在你的項目中刪除,但已經在您的磁盤上的包。

爲了避免這些,請執行下列操作:

  1. 刪除您要更新的第三方文件夾。
  2. 去你的應用程序文件夾,運行go get -d
0

轉到路徑並鍵入

go get -u ./.. 

這將更新所有需要的軟件包。

相關問題