LoginSignup
30
28

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-12-09

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

30
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
28