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 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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...

Go爬蟲Colly中的Queue線程問題探討在使用Go語言的Colly爬蟲庫時,開發者常常會遇到關於線程和請求隊列的問題。 �...

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

Go語言中字符串打印的區別:使用Println與string()函數的效果差異在Go...

Go語言中結構體定義的兩種方式:var與type關鍵字的差異Go語言在定義結構體時,經常會看到兩種不同的寫法:一�...

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...
