まだごりごりGo言語をさわれてないので、この構成でいいのかどうか、できるかどうかはこれから。
メモ的に。
1.goenvとgoのインストール
・goenvのインストール
goenvをgitで取得
git clone https://github.com/dataich/goenv.git ~/.goenv
.bash_profileに追加
export PATH="$HOME/.goenv/bin:$PATH"
eval "$(goenv init -)"
・goのインストール
goenv install 1.7
goenv global 1.7
※普通にパッケージでもインストールできるし、MacならHomebrewでインストールできる。Homebrewでのやり方は下記
brew install go --with-cc-all
--with-cc-allはクロスコンパイル環境を整えるため。
・GOPATHの設定
goでは作業ディレクトリの位置を表すGOPATHの設定が必要。
各プロジェクトに対するGOPATHの設定は後述するdirenvで設定する。
とりあえず共通のGOPATHを.bash_profileに設定しておく(任意のディレクトリ)
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
2.direnvのインストールと設定
GOPATHをプロジェクト(フォルダ)ごとに設定するために入れる
direnvは
・ディレクトリごとに環境設定が設定できる。(サブディレクトリも対象)
・ディレクトリへ入ると自動的に設定され、抜けると解除される。
という代物
・direnvのインストール
brew install direnv
echo 'eval "$(direnv hook bash)"' >> ~/.bash_profile
・direnvの設定
プロジェクトフォルダを作成して、設定ファイルを作成
cd ~/workspace/go_sample
direnv edit .
上記を実行すると、viが立ち上がるので下記を記述
export GOBIN=$(pwd)/bin
export GOPATH=$(pwd):$GOPATH
export PATH=$PATH:$GOBIN
// export GO15VENDOREXPERIMENT=1 ※1.6はbuildでコケることがあるらしいので、おまじない的に。 1.5はつける。 1.7はいらないと思う。
// GO15VENDOREXPERIMENTの設定は外部ライブラリをvendorフォルダにまとめることができる設定
direnv: loading .envrc
direnv: export +GOBIN ~GOPATH ~PATH
とでれば成功
もし、
direnv: error .envrc is blocked. Run `direnv allow` to approve its content.
とかいうエラーがでたら
direnv allow
を実行
3.glideのインストール
vendorフォルダ内に外部ライブラリをインストールでき、それをYAMLで管理する。
package.jsonのようなもの。
・glideのインストール
brew install glide
・glideの設定
下記フォルダ構成にする
- $GOPATH/src/app
|
|-- main.go
|
|-- vendor
appフォルダへ移動し、下記でglide.yamlファイルを作る
glide create
あとは必要な外部ライブラリを下記コマンドでダウンロード
glide get github.com/xxx/xxx
通常はgo getだが、glide getでライブラリのインストールを行う
glide.yamlがある状態で記載されている外部ライブラリを全て取得したい場合は、「glide up」でする
以上!Go言語がんばってさわっていきたい。