4
3

More than 3 years have passed since last update.

【Mac】goenvを使ったGoのインストール

Last updated at Posted at 2019-12-22

はじめに

Macデビューしたのに当たって、Goの開発環境構築を"goenv"を使って行ったので、そのまとめです。

goenvとは?

goenvは、pyenvから複製されたGo用のバージョン管理ツールです。
プロジェクトに応じて、GoのVersionを変更がある場合などに、Versionを切り替えて開発をすることができます。

goenvのインストール

まずはgoenvをインストールする前にhomebrewをアップデートします。

$ brew update

アップデートが終了したら、次にgoenvをインストールしていきますが、最新のgoのVersionをインストールしたい場合は、HEADをオプションにつけた方が良いです。
(ちなみに後からでもgoenvのリポジトリを最新にすることは可能です。)


$ brew install --HEAD goenv

goenvがインストールできたら、~/.bash_profileに下記の設定を追加します。

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

これでTerminalからgoenvがコールできるようになっているはずなので、Version
を確認します。
設定が有効になっていない場合があるので、その場合はShellの再起動を行って設定を有効にします。

$ exec $SHELL

ここまで実行したら、goenvのVersionを確認します。

$ goenv --version
goenv 2.0.0beta11

Version情報が表示されれば、goenvの準備は完了です。

Goのインストール

次にgoをインストールしていきます。
今回は、私事で1.13.0で開発をする必要があるため、このVersionをインストールしていきます。

まずは対象のVersionがリポジトリで管理されているかを調べます。

$ goenv install -l
 .
 . 
 .
 1.13.0
 1.13beta1
 1.13rc1
 .
 .

インストールする対象のVersionが見つかったら、goenvを介してgoをインストールします。
と言っても、ここまで来てしまえば、後は対象のVersionを指定するだけで、インストールが始まります。

$ goenv install 1.13.0

Goの環境設定

最後に使用するGoの設定を行います。
今回は先ほどインストールした1.13.0を使用するので、それを設定していきます。

まずは先ほど、インストールしたVersionがLOCAL環境に存在しているか確認します。

$ goenv versions
1.13.0

上記のように表示されればOKです。ですが、このままではLOCAL環境でGoを使うことができないので、対象となるVersionを指定して、Goを使える状態にしていきます。
まずは全体に適用するGoのVersionを指定します。

$ goenv global 1.13.0

文字通り、goenv globalを指定することで、対象のVersionを設定することができます。
初回の設定では、$GOPATH,$GOROOTの設定が出来ていないので、設定を追加します。

~/.bash_profile
...
export PATH="$GOROOT/bin:$PATH"
export PATH="$PATH:$GOPATH/bin"

上記を追加したら、.bash_profileを再度読み込みます。

$ source .bash_profile

最後にGoのVersionが確認できれば、インストールは終了です。

$ go version
go version go1.13 darwin/amd64

【おまけ】VSCodeとGo拡張設定

ついでにVSCodeの設定も行っていきます。
必要になるのは言わずもがな、Go言語拡張
go-extension.png

これがないと、ほぼ何もできません。

今回使用しているgoenvのVersionが2.0.0beta11なのですが、下記記事にあるように、2.0.0beta6の段階で仕様変更があったようです。
そのため、今回の設定では、GOROOTを見つけられず下記のようなErrorが出力されます。
goroot-error.png

この状態では、当然なからGOROOTを見つけられていないので、コード補完等も全く機能しません。
このままでは、非常に不便なので、作業フォルダに存在する.vscode/settings.jsonに設定を追加します。

'.vscode/settings.json'
{
    "go.goroot": "~/.goenv/versions/1.13.0"
}

上記のように明示的に$GOROOTのパスを宣言することで、コード補完がされるようになります。
後はVSCodeを再起動して、再度作業ディレクトリを開きコード補完がされていることを確認します。
gofmt.png

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3