Go
golang
direnv
goenv
glide

Go言語をMacにインストールしてみる(goenv + direnv + glide)

More than 1 year has passed since last update.

まだごりごり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言語がんばってさわっていきたい。