anyenvとgoenvによる、複数バージョン共存、切替可能なGolang開発環境の構築(MacOS編)

:2019年12月31日

:Go

:anyenvgoenvGolang

anyenvとgoenvによる、複数バージョン共存、切替可能なGolang開発環境の構築(MacOS編)

本レッスンのゴール

  • goenv による複数バージョン共存、切替可能な Golang 開発環境構築と、その正常動作確認

想定環境

以下の環境を想定しています。

  • OS : MacOSX Mojave (バージョン 10.14.6)

前提条件

  • anyenv がインストールされている事。
ATTENTION

anyenv のインストール方法については、以下のリンク先を参照して下さい。

全体の流れ

以下の流れで進めます。

  1. goenv のインストール
  2. Go のインストール
  3. 環境変数 GOHOME の設定

セットアップ

1. goenv のインストール

端末で以下のコマンドを実行します。

$ anyenv install goenv

以下のコマンドで、バージョンコードが出力されれば、goenv のインストールは成功です。

$ goenv --version
goenv 2.0.0beta11

2. Go のインストール

以下のコマンドで、インストール可能な Go のバージョンを確認します。

$ goenv install -l
Available versions:
1.2.2
1.3.0
....
1.12.1
1.12.2
1.12.3
1.12.4
1.12.5
1.12.6
1.12.7
1.12.8
1.12.9
1.13.0
1.13beta1
1.13rc1
1.13rc2

今回は、2019 年 9 月 23 日現在の最新安定板 1.13.0 をインストールします。
以下のコマンドでインストールし、システム全体で、デフォルトで使用するバージョンを設定します。

$ goenv install 1.13.0
$ goenv global 1.13.0
$ goenv version
1.13.0 (set by /Users/hogehoge/.anyenv/envs/goenv/version)

次に、goenv で導入し、設定したバージョンの go がデフォルトで使用される事を、以下のコマンドで確認します。

$ which go
/Users/hogehoge/.anyenv/envs/goenv/shims/go
$ go version
go version go1.13 darwin/amd64
ATTENTION
which go の出力結果が/usr/bin/go等になっている場合は、 anyenvの設定に失敗している可能性がありますので、
こちら(anyenvによる複数言語環境構築の準備) を参考に、環境変数設定周りを見直してください。

ここまでで、Go のインストールは完了です。

3. 環境変数 GOHOME の設定

Go 言語では、ワークスペースというディレクトリ下で開発作業を行ないます。 このディレクトリ下に、ソースコード、外部ライブラリー、コンパイル済み実行ファイルなど、 開発に必要なものから出力まで、全てが格納されます。 ワークスペースはどこでもいいのですが、大体、$HOME/goが一般的なようです。 本サイトでも、特別な指定がない限り、$HOME/go をワークスペースに指定します。 まず、以下のコマンドで、$HOME 直下に、go ディレクトリを作成します。

$ mkdir $HOME/go

次に、~/.bash_profile に、以下のように環境変数 GOHOME を追記します。

goenv 2.0.0 beta6以降では、goenv側でGOPATHを自動設定します。(デフォルトは~/go) これを無効化し、環境変数で設定したGOPATHの方を有効にするために、 export GOENV_DISABLE_GOPATH=1を加えます。以下の記載例は、goenv 2.0.0 beta6以降の想定です。
# For golang

export GOENV_DISABLE_GOPATH=1
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

これで、anyenv と goenv による Golang 開発環境の構築は完了です。