Goの勉強をはじめました。
導入から環境構築まで色々ググりながらやっていたのですが意外と情報が微妙に古かったり乱雑していたので、メモがてらまとめました。
今回はGoのインストールからIntelliJのプラグイン設定まで
バージョン管理のgvmでの導入になりますが、そんなの使わないでサクッと入れたい人はhomebrew
でも入れられます。
###gvmのインストール
まずはバージョン管理のgvmをhttps://github.com/moovweb/gvm:titleに従いながらインストールします。
% bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
僕はzshを使っているので、bashの部分をzshに書き換えました。
インストールが出来たら下記コマンドで反映
% source $HOME/.gvm/scripts/gvm
###Goのインストール
インストールできるバージョンを確認
% gvm listall
gvm gos (available)
go1
go1.0.1
go1.0.2
go1.0.3
・・・
go1.6rc1
go1.6rc2
go1.7
go1.7.1
go1.7beta1
go1.7beta2
・・・
最新の1.7.1をインストール
どうやらgvmで最新のgo1.5以上を入れるときはバイナリを突っ込む必要があるそうです。
% gvm install go1.7.1 -B
確認
% gvm list
gvm gos (installed)
go1.7.1
このままではgo
と叩いても反応しないので、インストールした1.7.1を指定してあげます。
% gvm use go1.7.1
Now using version go1.7.1
もう一度確認すると矢印がついてgo
が使えるようになります。
% gvm list
gvm gos (installed)
=> go1.7.1
% go version
go version go1.7.1 darwin/amd64
gvmで入れると$GOPATH
と$GOROOT
は自動で入るみたいです。
これはバージョンを切り替えても自動で切り替わってくれます。
% go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="$HOME/.gvm/pkgsets/go1.7.1/global"
GORACE=""
GOROOT="$HOME/.gvm/gos/go1.7.1"
GOTOOLDIR="$HOME/.gvm/gos/go1.7.1/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/y2/zz_q5ltx7v17184mmkfcbg8w0000gn/T/go-build277300899=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
今後作業ディレクトリは$GOPATH
で行うことになります。
めったにバージョンは変えない、作業ディレクトリは$HOME/dev
とか分かりやすい場所がいいと言う方は直で指定しちゃいましょう。
export GOPATH=$HOME/dev
export PATH=$GOPATH/bin:$PATH
###IntelliJの導入
ここからIntelliJ IDEA14 Community Editionをダウンロードします。
通常どおりプラグインを入れるとSDKが指定できずにハマるので以下のページからjarファイルをインストールする。
https://github.com/go-lang-plugin-org/go-lang-idea-plugin/releases?after=%23460
IntelliJ IDEA->Configure->Plugin->Install plugin from disk...を選択、ダウンロードしたGo.201.zipを選択してインストール。
すると
Restartと促されるのでそのまま従い再起動。
Eventsに従いupdateをし、再度再起動。
Create New Project->GOを選択
まだSDKは現れないので、Configureを開きパスに$GOROOTのパスを指定すると無事SDKが指定できます。
あとはプロジェクト名を指定し、プロジェクトパスを$GOPATHに設定
プロジェクト上にmain.goファイルを作成し、お決まりのhello world
ならぬhello go
を
package main
import "fmt"
func main() {
fmt.Println("hello go")
}
メニューバーのRunからRunを実行すると無事にhello goが実行されます。
コマンドだと
% go run main.go
###参考サイト
http://dev.classmethod.jp/server-side/language/golang-1/
http://www.songmu.jp/riji/entry/prepare-golang-development-environment-on-mac.html
http://shepherdmaster.hateblo.jp/entry/2015/02/02/192327
http://qiita.com/yamadagenki/items/5032cf853f6b136b533f
http://qiita.com/adarah_g/items/85d12583386dc19f6c4e