エンジニアはこわくない

好きなように書く

golangのパッケージ依存解決ツールdepを使うが上手くいかない(解決!)


スポンサーリンク

f:id:tsujitaku50:20170224131252j:plain

※2017年12月25日追記

depは常に進化を続けているので、この記事に書いてある情報は古い可能性があります。
最新の情報はgithubを御覧ください。
GitHub - golang/dep: Go dependency management tool

※2017年2月24日追記

なんとかこの問題を解決しました!
記事の最後に解決した記事のURLを貼っておくので良かったら見てください。

本文はここから

golangのパッケージ依存問題

golang使いの方なら幾度も悩まされたであろう問題。。。

もしかしたら、この問題に終止符が打たれるかもしれません。

公式からバージョン依存解決ツールがでたので、少しだけ使ってみました

golangのパッケージ依存問題について詳しく知りたい方はこちらをどうぞ。

Goパッケージ依存管理最新事情 - 技術備忘記

いくつもあるパッケージ依存管理ツール

公式からパッケージ依存管理ツールが出ていなかったこともあってか、

様々なツールが登場しています。

公式にも以下のようにちゃんと紹介されています。

github.com

僕も普段はgbを使用しています。(gbさんお世話になっています。。)

個人的にgbも使いやすく今の所、不満はないのですが今日はdepを使ってみます。

公式から出たパッケージ依存管理ツール

遂に長い時を経て、depという公式パッケージ依存管理ツールが登場しました。

github.com

ただ、少し気になるのがREADME.mdに

Depはプロトタイプの依存関係管理ツールです。コンパイルするには、Go 1.7以上が必要です。

まだDepは公式のツールではありません。

 Goチームには祝福されていません。

しかし、Goコミュニティの大部分のコンセンサス努力とgo toolchainに統合されていることが目標です。

Google翻訳で訳すと、こんな感じのことが書かれています。

「まだ公式パッケージ依存管理ツールではないけど、そうなるように努力してる」って感じでしょうか。

depを使ってみる

まずはインストールしましょう。

$ go get -u github.com/golang/dep/...

テストプロジェクトを作って、動作確認してみましょう。

まず始めにdep initというコマンドを打つようです。

% dep init
project not in a GOPATH

はい。初っ端からつまづきました。いやいや。。GOPATHありますよ!

確認してみます。

% go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="~/.go"
・・・

うーん。ちゃんと設定されてるっぽいんですが。。。

もしかしてgolangのバージョンが古いんでしょうか。

公式ドキュメントには「Go 1.7以上であればオッケー」と書かれていました。

% go version
go version go1.8 darwin/amd64

バージョンは1.8なので、特に問題ないようです。

仕方ないので、depのソースコードに見に行きました。

僕が出しているエラーの箇所は下記のようです。

dep/context.go at 8ac86c2f5767a63fb51ccedffa167972341f6cd9 · golang/dep · GitHub

分からん・・・

僕のgolang力がなさすぎて、解読できません・・・(泣)

まとめ

分からん。

depのissueを見ましたが特にこのエラーに該当するissueも見当たらなかったので

恐らく僕の環境なり、やり方が間違っている可能性が非常に高いです。

うーん。

もう少しがんばってみますか。

おわり!!

追記

※解決しました tsujitaku50.hatenablog.com