LoginSignup
103
104

More than 5 years have passed since last update.

godepを利用して依存ライブラリの管理を行う

Last updated at Posted at 2013-11-26

godep

Go言語のライブラリが依存しているパッケージの管理ツールとして、
godepというものを見つけた。

試しに使ってみたところ良さそうなのでメモ。

自分の手元では自作のゴミライブラリであるsimple-irc-bot-goで確認した。

godepを使った形に自己ライブラリを改める

以下の手順を踏む。

godepのインストール

go get github.com/kr/godep で終わり。

依存パッケージの保存

カレントディレクトリを自分が作成しているライブラリに切り替えて、
godep saveを実行する。するとカレントディレクトリ以下にGodepsディレクトリが作成される。

Godeps/Godeps.json ファイルに依存しているライブラリの情報が登録される。

{
        "ImportPath": "github.com/futoase/simple-irc-bot-go",
        "GoVersion": "go1.1.2",
        "Deps": [
                {
                        "ImportPath": "code.google.com/p/gomock/gomock",
                        "Rev": "ae48011f41cd01e8e4e77d501502d2e734816da2"
                },
                {
                        "ImportPath": "github.com/ActiveState/tail",
                        "Rev": "36ba8bccb91f119d56866e51ae0dd11ba2731ec2"
                },
                {
                        "ImportPath": "github.com/fluffle/goevent/event",
                        "Rev": "972f9141f4868fad5cd0704bb998b56b18742133"
                },
...

.gitignoreに配布側として不必要なファイルを登録する

godep save を実行すると、Godeps ディレクトリ以下に依存している
パッケージの本体そのものが_workspace ディレクトリにコピーされる。
godep go build main.go という形で goコマンドの前に godep をつけると
_workspace ディレクトリ以下にあるパッケージを使う形になり、
`$GOPATH/src以下にライブラリをインストールしなくても使える状態になる。

...けど、自作ライブラリを配布するときには必要がないので.gitignoreに記述する。

Godeps/Readme
Godeps/_workspace

git pushを行う

Godeps/Godeps.json ファイルをgit add する。

これでライブラリ配布側の準備は終わり。

godepを使ったライブラリを利用したい場合

godepを使ってパッケージ管理をしているライブラリを
利用し、godepを使って依存しているパッケージをインストールしたい場合は以下の手順を踏む。

go getする。

使いたいライブラリをgo get してインストールする

go get github.com/futoase/simple-irc-bot-go

依存しているライブラリをインストール

ライブラリのパスに移動して(この場合は$GOPATH/src/github.com/futoase/simple-irc-bot-go)、
godep getコマンドを実行する。

そうすると、$GOPATH/src 以下に依存ライブラリがインストールされる。

103
104
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
103
104