go get しても GOPATH 以下に入らないで ~/go 以下に入ってしまう場合(goenv 使用時)

結論

以下の行が .bashrc.zshrc などに書かれていませんでした。

export PATH="$GOROOT/bin:$PATH"

状況

printenv | grep GO の結果は以下のように問題ないように見えましたが、go get すると ~/go/1.12.1 配下に入ってしまっていました。

GOENV_ROOT=/Users/FOOBAR/.goenv
GOENV_SHELL=zsh
GOROOT=/Users/FOOBAR/.goenv/versions/1.12.1
GOPATH=/Users/FOOBAR/.go

そこで冒頭の一行を以下のように含ませることで、go get した結果 GOPATH 以下に入るようになりました。

export GOENV_ROOT="$HOME/.goenv"
export PATH="$GOENV_ROOT/bin:$PATH"
eval "$(goenv init -)"
export PATH="$GOROOT/bin:$PATH"
export PATH="$GOPATH/bin:$PATH"

補足

  • 環境は Mac + goenv です
  • $GOROOT を明示的に指定してはいません

ドキュメント

Powered by はてなブログ