GO言語は最近触りだしたばかりでちんぷんかんぷんですが、パッケージ管理機能のglide(グライド)を使った時に、全然ビルド出来なくて困った話をします。
解決策は、実際にGOを使っているエンジニアに聞いたので間違いない(はず)です!
はじめに
世の中には既にglideについて書かれた素晴らしい記事はたくさんあります。そもそもglideって何?という方はこちらの記事を読んでください。
こちらの記事で、glideを使ったvenderingがうまくいった方は、この先を読まなくて大丈夫です。
僕は無理でしたけどね!
というわけで、Go大して知らない。でも、せっかくやるならパッケージ管理は使いたいというわがままな人に向けて解決策です。
コピペレベルで環境構築できるようにしておきますね。
Goとglideのインストール(Mac)
流石にこれはやってますよね?
1 2 |
$ brew install go $ brew install glide |
インストールした後は、GOPATHの設定をします。色々な記事を読みましたが、ホームディレクトリ直下にgoディレクトリを作ってしまうのが良さそうです。
1 2 3 4 5 |
$ vi ~/.bashrc # Golang export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin export GO15VENDOREXPERIMENT=1 |
glide使うには、export GO15VENDOREXPERIMENT=1の設定が必要なのでやっておきましょう。
ターミナルよくわからない方は、次のコマンドも打っておいてください。
1 |
$ source ~/.bashrc |
Goプロジェクトの作成
大切なことなので、いいます。
glideを使うプロジェクトは$GOPATH/src/ディレクトリ以下に作成してください。
僕は、この暗黙の了解を知らずに2時間ほどハマりました。
1 2 3 4 5 6 7 8 9 10 |
$ mkdir -p ~/go/src/ $ cd ~/go/src/ $ mkdir mygo $ cd mygo/ $ vi main.go # 適当にサンプルコードをコピペ $ glide create $ glide install $ go build $ ./mygo |
サンプルコードはそうですね。KeisukeUtsumiに作成してもらった、最低賃金をスクレイピングするスクリプトでどうでしょう。
初め、$GOPATH/src/ 以下に、作成することを知らず。~/goproject/mygo/main.go を作成して、glide installが出来ないと嘆いしてました。
~/go/src/mygo/main.go を作成したら無事にビルドできました。
みなさんも気をつけてください。
現在、クックビズでは新しいメンバーを募集しております!
このブログを書いているのはクックビズ株式会社の開発チームです。私たちと働いてみたいと思った方はWantedlyから話を聞きにきて下さいヽ(=´▽`=)ノ著者プロフィール
- 開発部にいるのに何やってるの?と他のスタッフからよく思われてます。ブログ書いたり、社外勉強会でプレゼンしたり、やたらと会社の備品を増やしたり。ちゃんと仕事やってますよ?
私の記事を参照していただいていたので、少し補足させてください。
$GOPATH/src/ に作成する必要があるという認識は間違っていませんが、
direnvというツールを使うことで任意のディレクトリを動的に$GOPATHにセットすることができます。
具体的なやり方はリンク先を参照していただければと思いますが、
これを使うとプロジェクトごとに$GOPATHを自動的に変更することで個別にファイル管理ができます。
d_abeさん
補足ありがとうございます。direnv使うやり方も試してみました!面白いツールですね。
個人的には.envrcを管理するよりも、ツール無しで $GOPATH/src/projects/ とディレクトリを掘って、projects以下をコミットする方がシンプルだったので、後者の使い方をしました。
もしかしたら、プロジェクトが増えすぎてdirenvが必要になるときが来るのでしょうか。。。