天天看點

go語言多版本管理

作者:零一間
go語言多版本管理

Go 語言的多版本管理是為了解決不同項目或者同一項目的不同依賴包版本之間的沖突問題。

多版本管理

  1. 安裝 Go
  2. 安裝好了 git

運作 go install golang.org/ dl / go 指令将下載下傳特定 Go 版本的包裝器。

$ go install golang.org/dl/go<version>@latest

通過包裝器,下載下傳特定 Go 版本和它對應的工具鍊。

$ go<version> download

例如安裝 1.18.9 版本,可以這樣執行。

$ go install golang.org/dl/go1.18.9@latest
$ go1.18.9 download           

如圖:

go語言多版本管理

完成代碼:

(base) PS D:\goWork\go-test> go install golang.org/dl/go1.18.9@latest

(base) PS D:\goWork\go-test> go1.18.9 download
Downloaded   0.0% (    16384 / 155250028 bytes) ...
Downloaded  24.8% ( 38518656 / 155250028 bytes) ...
Downloaded  40.5% ( 62848592 / 155250028 bytes) ...
Downloaded  81.3% (126238272 / 155250028 bytes) ...
Downloaded 100.0% (155250028 / 155250028 bytes)
Unpacking C:\Users\{USER}\sdk\go1.18.9\go1.18.9.windows-amd64.zip ...
Success. You may now run 'go1.18.9'

(base) PS D:\goWork\go-test> go1.18.9 version
go version go1.18.9 windows/amd64

(base) PS D:\goWork\go-test> go version      
go version go1.20.5 windows/amd64           

圖中看到,預設go是1.20版本,我們又安裝了1.18版本,互相獨立。

使用

以下是我的測試項目原始go mod

module example.com/m/v2

go 1.20

require golang.org/dl v0.0.0-20230629133730-ba866d363753 // indirect
           

我們删除檔案重新使用go1.18.9初始化go mod

(base) PS D:\goWork\go-test> go1.18.9 mod init example.com/m/v2
go: creating new go.mod: module example.com/m/v2
(base) PS D:\goWork\go-test> cat go.mod
module example.com/m/v2

go 1.18           

此時我們可以看到go.mod檔案,版本号變了。

那麼剩下的go build ,go run 等指令也是類似了。

如圖:

go語言多版本管理

繼續閱讀