👌

go versionしたらgo: cannot find GOROOT directory: /usr/local/go..と出たときのメモ

2024/07/05に公開

発生した問題

プロジェクト内にgoをインストールする必要があった。
インストールできたかどうかわからないのでgo versionを実行すると下記のようにエラーが出た。

User@MacBook-Air project-name % go version
go: cannot find GOROOT directory: /usr/local/go1.22.4

原因

これはGoのランタイムが必要なディレクトリ(GOROOT)を見つけられないことを意味していて、
インストールが正しく行われていないか、環境変数の設定が誤っているようだった

解決方法

下記の手順で解決した

1.GOROOTを再設定

export GOROOT="/opt/homebrew/opt/go@1.20/libexec"
export PATH="$GOROOT/bin:$PATH"

2.上記の設定を毎回手動で行わないようにするための設定をする

1の設定を毎回手動で行わないようにするための設定が必要なので、~/.zshrc (または ~/.bash_profile)に追加するために下記のコマンドを実行した。

echo 'export GOROOT="/opt/homebrew/opt/go@1.20/libexec"' >> ~/.zshrc
echo 'export PATH="$GOROOT/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

3.Goが正しくインストールされているか確認

Homebrew経由でGoが正しくインストールされていることを確認した。

brew list go@1.20

すると
/opt/homebrew/Cellar/go@1.20/1.20.14/bin/go
みたいなのが10行くらいで出てくる。ちゃんと動いていそう。

4.Goのバージョンを確認

go version
を実行してgoのバージョンが出たらオッケー。

Discussion