Go
goenv

goenvでgoをインストール 〜初心者向け〜

はじめに

そんなに機会はないかもしれませんが、goをインストールするたびにどのgoenvを使ってたかとかみるのが面倒なので書き残しておこうと思います。
かなり初心者向けに書いていこうかなという感じです。
だいたいの環境で構築できるはず!

環境

  • openSUSE LEAP 42.2
  • goenv 1.0.0

goenvについて

goのバージョン管理ツール。
プロジェクトごとにgoのバージョンが変わったりするときに便利。

goenv install

どの環境でもインストールしやすいようにgitでインストール

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

URLが変わってたりリポジトリがなくなってたりした場合は他のリポジトリを探してください。

環境変数を設定します。
自分が使ってるシェルの設定ファイルに追記。(~/.bashrcや~/.zshrcなど)

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

追記したら

$ exec $SHELL

または

$ source ~/.zshrc

反映されなかったらターミナルを再起動しましょう。

goenv: system version not found in PATHと言われるようですが、golangをまだインストールしていない状態で goenv init - しているからみたいなので気にせず進んでください。

その後

$ goenv -v

これでgoenv (任意のバージョン)がでればOK

go(golang) install

言語をインストールします。
インストールできるバージョンは以下のコマンドで確認できます。

$ goenv install -l
  1.2.2
  1.3.0
  .
  .
  .
  1.8.1
  1.8.3

今回は今のところ最新版の1.8.3をインストールします

$ goenv install 1.8.3

現在使用できるgoのバージョン一覧を見てみましょう。

$ goenv versions
  1.8.3

インストールしたバージョンが表示されていれば使用できる状態にあるので使えるように設定します。

$ goenv global 1.8.3
$ goenv rehash

これで基本的にどこのディレクトリでも1.8.3のバージョンが使えるようになります。(rehashしないと変更されない場合があります)

$ goenv versions
* 1.8.3 (set by ~/.goenv/version)

この*がついているバージョンが現在設定されているバージョンになります。

$ go version
go version go1.8.3 linux/amd64

とりあえず使えるようになりました。
このあとはプロジェクトなどに対応できるように環境変数を設定します。

$GOPATHを設定しますが好きなディレクトリに設定します。
自分はホームディレクトリに設定してます。(ホームディレクトリに設定する人が多い気がする)

~/.zshrc
export GOPATH=$HOME/go
PATH=$PATH:$GOPATH/bin

上記の記述を追加後

$ source ~./.zshrc
$ mkdir -p $GOPATH/src/github.com/{ユーザー名}
$ cd $GOPATH/src/github.com/{ユーザー名}
$ git clone {gitのプロジェクト}

これで動くはず!
動かなかったらコメントでもください。

おまけ

プロジェクトごとのenvの設定などでgoのバージョンがグローバルじゃないのを使うことがあるはずだったので気をつけましょう。
goenvについてはどれもそんなに変わりませんが自分が使いやすいと思ったものにしました。インストールできるバージョンが見れないgoenvもあるので注意。