ユーザ用ツール

サイト用ツール


goenv

goenv

Goのバージョン管理ツール。pyenvやrbenvのようなもの

インストール

brew install goenv

zshrcに以下を追加

eval "$(goenv init -)"

brewでインストールした場合は環境変数(GOENV_ROOTやPATH)の設定は不要です

2022/11時点での問題: goenv以外でインストールしたgoはアンインストールしましょう。これはgoenvのshimsのパスがPATH環境変数の後ろに追加されるため優先度が低くなっており、別のgoバイナリがあるとそちらを見に行ってしまうため。(rbenvはPATHの前に追加されるのでこのような問題は起きない)

どうしてもアンインストールしたくない場合は、export PATH=$GOENV_ROOT/shims:$PATH をzprofileなどの最後に設定しましょう

goのインストールとバージョン指定

rbenvとほぼ同じ

goenv install 1.19.3
goenv global 1.19.3

エラー

compile: version "goX.X.X" does not match go tool version "goY.Y.Y"

goenvでバージョンを変えると出ることがある。

まず、それぞれのバージョンが一致しているか確認する

$ go version
go version go1.20.1 darwin/arm64

$ goenv version                                                          
1.20.1 (set by /Users/nullpon/.goenv/version)

$ echo $GOROOT
/Users/nullpon/.goenv/versions/1.20.1

$ echo $GOPATH
/Users/nullpon/go/versions/1.20.1

バージョンにズレがあれば一致するように設定し直し、シェルを再起動する。またgoenv以外でgoがインストールされていると影響する可能性があるのでアンインストールした方が良い。

goenv rehash

go installしたらrehash!

$ go install github.com/golang/mock/mockgen@v1.6.0
 
$ goenv rehash
goenv.txt · 最終更新: 2023/09/14 16:51 by nullpon