php小編子墨將為大家介紹Go語言中的"go get"和"go install"指令在go.sum檔上的使用。在Go語言專案中,go.sum檔案用於記錄專案所依賴的套件及其版本信息,確保專案在建置和部署過程中的穩定性和一致性。透過理解"go get"和"go install"指令對go.sum檔案的影響,可以更好地管理和控制專案的依賴關係,提高開發效率和程式碼品質。讓我們一起來了解這兩個指令的具體用法吧!
我使用的是 go 1.20.3
我剛剛使用 go get 和 go install 安裝了這個軟體包
go get -v github.com/mactsouk/go/simplegithub go install github.com/mactsouk/go/simplegithub
我的 go.sum 檔案中有:
github.com/mactsouk/go v0.0.0-20180603081621-6a282087f7bd h1:tqjgx/jaxlj3rnl7ps7xzqlvth8rl/dusa8wpe9w4y0= github.com/mactsouk/go v0.0.0-20180603081621-6a282087f7bd/go.mod h1:trtlpc1xi1zoqdba/cixgds+fcaizdqupmrflet5dbi=
go.mod 檔是:
module calculator go 1.20 require github.com/mactsouk/go v0.0.0-20180603081621-6a282087f7bd // indirect
在我的 $home/go/pkg/mod/github.com/mactsouk/ 上 aod
dr-xr-xr-x 5 user staff 160 jul 4 18:42 [email protected]
$home/go/bin/ 上什麼都沒有,只有兩個文件,為什麼 go install 沒有複製 simplegithub 模組的二進位檔案?
drwxr-xr-x 4 user staff 128 Jun 26 23:37 . drwxr-xr-x 4 user staff 128 Jun 26 23:35 .. -rwxr-xr-x 1 user staff 3410064 Jun 26 23:35 go-outline -rwxr-xr-x 1 user staff 28237216 Jun 26 23:37 gopls
go get 和 go install 之間有差別嗎?為什麼我在 go.sum 上將此模組檔案兩次?
go get 與 go install
Go 中的 go get 和 go install 指令有不同的用途:
go get 用於從遠端儲存庫檢索和下載套件及其相依性。它使用下載的軟體包的版本更新 go.mod 和 go.sum 檔案。如果套件已經存在,go get 會將其更新到最新版本。
go install 在專案的 GOPATH 或 GOBIN 中編譯並安裝套件。它不會更新 go.mod 或 go.sum 檔案。相反,它使用這些文件中的信息來確定要使用的依賴項的正確版本。
就您而言,當您執行 go get 時,它會下載並安裝軟體包 github.com/mactsouk/go/simpleGitHub 及其相依性。此操作使用下載的軟體包的版本更新了 go.mod 和 go.sum 檔案。
當您隨後對同一個套件執行 go install 時,不需要再次下載該套件,因為它已經存在於本機 Go 模組快取中。因此,go install 使用了快取中的現有套件及其版本,並且沒有修改 go.mod 或 go.sum 檔案。
您看到該模組在go.sum 檔案中列出兩次的原因是它包含模組版本(v0.0.0-20180603081621-6a282087f7bd) 及其相應的go.mod 文件,其中包含校驗和。這是預期的行為並確保依賴項的完整性。
綜上所述,go get 和 go install 的目的不同,go.sum 檔案中模組重複是正常的。
以上是go get 與 go install 在 go.sum 檔案上的詳細內容。更多資訊請關注PHP中文網其他相關文章!