【Go】goenvを使ってGo1.13.4の環境構築


Goはじめよう。
rubyにrbenvあるみたいに
goenvっていうのを入れたらバージョン管理が楽になるらしい。

ということで、環境構築はじめましたが一度go1.11.4を入れてしまいました。
それからgo version go1.13.4 darwin/amd64ってターミナルに
表示されるまでにやったことの備忘録。
もしお気づきのことがあれば、コメントいただけると助かります。

本トピックの環境

macOS Mojave ver. 10.14.6
Homebrew インストール済

参考にしたサイト・記事

1. go1.11.4 インストール(後ほど削除しました)

goenv installationの手順にある通りgoenvのインストールには2通りあります。
1. goenvのGitHub
2. Homebrew
まずここで選択を誤ったのですが、Homebrewが簡単そうだと思って、Homebrewから開始しました。

$ brew update
$ brew install goenv

完了したらインストールできるバージョンを確認。

//インストール可能なバージョンを確認
$ goenv install -l
Available versions:
  1.2.2
  1.3.0
  1.3.1
    ︙
  1.11.3
  1.11.4

go1.11.4をインストール。

$ goenv install 1.11.4

そして環境変数の設定。

//vimで.bash_profileを開く
$ vi ~/.bash_profile

vimが開いたら以下を追記して保存します。

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

もちろんターミナル上で以下のコマンドを打つ方法も同じ結果になります。
goenv installationでは以下の方法で載っています。
他のコマンドはgoenv installationを参照してください。

$ echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.bash_profile

環境変数設定が完了したら、パスを通す。
そして、今回のインストールを反映させるためのコマンド。

//パスを通す
$ source ~/.bash_profile

//globalにgoenv 1.11.4を反映
$ goenv global 1.11.4
$ go version
go version go1.11.4 darwin/amd64

無事にインストールできました。

2. go1.13.4にバージョンアップ

Go公式を閲覧していたら、最新版はgo1.13.4。(2019年11月9日現在)
最新版にするため、以下の手順でgoenvのアンインストールを行いました。
参照:goenv installationの下部にあるUninstalling goenvとUninstalling go version

$ rm -rf `goenv root`
$ brew uninstall goenv

上記コマンドの前に一つ手順があります。
環境変数の設定で追加したgoenv initの一行を削除するというものです。
でも、これはgo1.13.4でも使用するのでそのままにしておきました。

goenvが削除されたことを$ brew listで確認。
そして改めてgoenv installationを熟読。
1の手順の最初に大事なこと書いてありました。

This will get you going with the latest version of goenv and make it easy to fork and contribute any changes back upstream.
(1の手順だったら)最新版のgoenvを使用できるし、フォークや変更の反映もupstreamに簡単にできるよ。(ざっくり訳)

goenv installationのBasic GitHub Checkoutからやり直します。

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

.goenvにgit cloneされます。

そして再度インストールできるバージョンを確認。

//インストール可能なバージョンを確認
$ goenv install -l
Available versions:
  1.2.2
  1.3.0
  1.3.1
    ︙
  1.13.3
  1.13.4

今度はgo1.13.4が表示されていました。
そしてgo1.13.4をインストール。

$ goenv install 1.13.4

環境変数の設定は、go1.11.4インストールの際にすでに完了しているので省略。
再度、今回の変更を反映させるために以下コマンド。

$ goenv global 1.13.4
$ go version
go version go1.13.4 darwin/amd64

以上です。

私のような初心者が使う分には、go1.11.4でもgo1.13.4でも、どちらも問題なく動いてくれています。
もちろんHomebrewにもgoenvがない状態です。
rbenvをHomebrewでインストールしていたので、きちんと動くのか不安でしたが現状問題ありません。
また何か問題が発生したら追記します。