首頁 > 後端開發 > Golang > 主體

go get 與 go install 在 go.sum 檔案上

王林
發布: 2024-02-12 09:27:08
轉載
1051 人瀏覽過

go get 与 go install 在 go.sum 文件上

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 getgo install 指令有不同的用途:

go get 用於從遠端儲存庫檢索和下載套件及其相依性。它使用下載的軟體包的版本更新 go.mod 和 go.sum 檔案。如果套件已經存在,go get 會將其更新到最新版本。

go install 在專案的 GOPATHGOBIN 中編譯並安裝套件。它不會更新 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中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!