go installがうまくいかない
目的:Macでbrew install goでインストールしたGo1.21.1を使って、go installでGo1.18@latestをインストールしたい
結論:brewでインストールしたgoを使ったのがよくなかった模様。以下に従ってバイナリをダウンロードしてきて、それを使ったらうまく行った。
code:log
$ go install golang.org/dl/go1.18@latest
go: golang.org/dl/go1.18@latest: GOPROXY list is not the empty string, but contains no entries
以下を参考にGOPROXYを指定したら状況が変わった。これは本当は${GOROOT}/go.envに書かれているらしい。GOPROXYとは?は分からない。
code:sh
すると以下のようなエラーが出るようになった。
code:log
$ go install golang.org/dl/go1.18@latest
go: downloading golang.org/dl v0.0.0-20230906154927-cd520cc22eb4
go: golang.org/dl/go1.18@latest: golang.org/dl@v0.0.0-20230906154927-cd520cc22eb4: verifying module: missing GOSUMDB
SUMDBというチェックサムデータベースの指定がないのが理由っぽい。GOSUMDBを環境変数で指定する。
code:sh
export GOSUMDB="sum.golang.org"
すると状況が変わり、また別のエラーが出た。
code:log
$ go install golang.org/dl/go1.18@latest
go: downloading golang.org/dl v0.0.0-20230906154927-cd520cc22eb4
go/pkg/mod/golang.org/dl@v0.0.0-20230906154927-cd520cc22eb4/internal/version/version.go:9:2: package archive/tar is not in std (/Users/suzuri/go/src/archive/tar)
go/pkg/mod/golang.org/dl@v0.0.0-20230906154927-cd520cc22eb4/internal/version/version.go:10:2: package archive/zip is not in std (/Users/suzuri/go/src/archive/zip)
埒が明かないので、brew uninstall goして公式バイナリをインストールしたらうまくいった。