Help us understand the problem. What is going on with this article?

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

More than 3 years have 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言語がんばってさわっていきたい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした