at backyard

Color my life with the chaos of trouble.

M1 Macでgoenvを用いてGo環境を構築した

M1 MacにGo言語の環境が入っていなかったので環境構築した備忘録。

先に書いておくと、様々なサイトやブログで紹介されている方法に倣っているので、新しいことは何も書いていません。

goenvを用いてGoの1.17.3をM1 Macにインストールしました。

[追記] 初心者は普通にインストールしたほうが良いかも?

この記事を書いたあとに知ったのだが、初心者には goenv などのマルチバージョン管理ツールはあまりおすすめでないらしい。

詳細は下記のポスト先に貼ったリンクを参照していただきたいが、以上のようなことから、結局 goenv はアンインストールして、公式サイトで配布されているインストーラーを用いてインストールした。

そのことに関する内容も全て下に書いたので参照してみてください。

shinshin86.hateblo.jp

goenvのインストール

上にも書いたが、goenvを使って導入するやり方を書いている方が多かったので、その方法でやってみようと思う。

github.com

pyenv などもそうだが、普段私はgitを使って直接チェックアウトして設定しているので、今回もその方法で環境を構築していく。

※下記は少し前にM1 Macにpyenv経由でPythonを設定した際の備忘録

pyenvをM1 MacにインストールしてPython環境を構築する - at backyard

下記の公式ドキュメントを参照してgoenvをセットアップしていく

https://github.com/syndbg/goenv/blob/master/INSTALL.md#basic-github-checkout

まずは goenvをローカルにクローン。

git clone https://github.com/syndbg/goenv.git ~/.goenv

次に環境変数などを設定していく。
goenv側でGOPATHとGOROOTも管理してくれるという設定にしている。
(このやり方がgoenv的には推奨らしいので、ひとまずこれで実施してみる)

echo '# goenv setting' >> ~/.zshrc
echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.zshrc
echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(goenv init -)"' >> ~/.zshrc
echo 'export PATH="$GOROOT/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.zshrc

一旦シェルを再起動する。
下記のコマンドを打って下記のように表示されてればOK

$ goenv --version
goenv 2.0.0beta11

ちなみに上記ドキュメント内に古くなったGoの削除方法なども書いてあったので、困ったことがあったら見ておくと良さそう。

goenvを用いたGoのインストール

あとはGoの指定のバージョンを$GOENV_ROOT/versionsにインストールしていくだけ。

現在インストール可能なgoのversionを調べる際は下記で行う。

goenv install -l

インストールは下記。

goenv install 1.17.3

設定は下記で実施。
(いまのところ特にプロジェクトごとに細かくわけるつもりはないので、一旦globalで設定)

goenv global 1.17.3

インストール終えたら下記のコマンドで確認。
(ARM版がインストールされていることを確認)

$ go version
go version go1.17.3 darwin/arm64

これでひとまずはGoが使えるようになった。