compile: version "go *." does not match go tool version "go *."エラー
goの環境構築していてhello worldさせるために、
はりきってgo run hello.go
をしたら上記のエラーがでた。
エラー内容
# unicode/utf8
compile: version "go1.16.2" does not match go tool version "go1.17.8"
# runtime/internal/sys
compile: version "go1.16.2" does not match go tool version "go1.17.8"
# internal/unsafeheader
compile: version "go1.16.2" does not match go tool version "go1.17.8"
# internal/race
compile: version "go1.16.2" does not mat
goenvを使っていてgoenv global 1.17.8
の指定なのにgo toolでは1.17.8が使用されている?
そういえば環境構築時にbrewインストールしたバージョンとは違うバージョンをgoenv globalで指定していた記憶があったような。
一旦goenvの確認
$ go env | grep GOVERSION
GOVERSION="go1.17.8"
brewでgoをアンインストールする
$ brew uninstall go
Uninstalling /usr/local/Cellar/go/1.17.8... (10,831 files, 566MB)
これで1.17.8とはさよなら。もう一回確認。
$ go env | grep GOVERSION
GOVERSION="go1.16.3"
go1.16.2になってほしいのに今度はなぜかgo1.16.3が設定された。
いっそのことGo関係すべてを削除する。
$ sudo rm -rf /usr/local/go
$ sudo rm -rf /etc/paths.d/go
$ rm -rf ~/go
$ rm -rf ~/.goenv
※他のところを削除しないように注意して実行してね。
Go再インストール
$ brew install go
$ which go
/usr/local/bin/go
PATHは以下のように設定
~/.zshrc
export PATH=$PATH:/usr/local/go/bin
.zshrc再読み込み
$ source ~/.zshrc
仕切り直してgo run hello.go
する。
一発でうまくいかなかったのでPC再起動したらできました。