エンジニアはこわくない

自分の好きな音楽とか雑記とかエンジニアっぽい内容を好きなように書く場所。

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

f:id:tsujitaku50:20170224131252j:plain

※なんとかこの問題を解決しました!
記事の最後に解決した記事の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