go modules 410 Gone

hedzr發表於2020-01-03

有時候,釋出 go 庫會發現在其他專案中無法引用,產生 410 Gone 錯誤。

這是由於你的 go 庫宣告為 go 1.12 格式,此時將沒有 SUMDB 校驗資訊,因而在一個 go 1.13 的專案中引用這樣的舊的庫格式時會產生校驗錯誤,進而報錯為 410 Gone。

例如:

image-20200103114210261

解決的辦法有很多。

對於使用該舊格式庫的人來說,以下兩個辦法都能幫助你順利下載庫和完成引用:

export GONOSUMDB="github.com/hedzr/errors,$GONOSUMDB"
# Or
export GOSUMDB=off
複製程式碼

對於該庫的擁有者而言,下面的辦法是正確的處理方案,可以一勞永逸地解決問題:在 go.mod 中修改庫宣告的版本格式為 1.13。例如:

module github.com/hedzr/errors

go 1.13  // go 1.12

複製程式碼

對於庫作者而言,如果還有任何釋出的庫的 go.mod 中包含 go 1.12 宣告的,都應該立即更新庫為新版本本修正這個宣告為 go 1.13,以避免他人遇到麻煩。

相關文章