dep
depはGolangで使うパッケージのバージョン管理を行ってくれます。Node.jsでいうところのnpmですね。
Golangにはデフォルトでgo getというコマンドでパッケージのインストールができますが、バージョンの固定ができないので実運用には耐えられません。
なのでdepを使ってパッケージ管理をするようにしましょう。
インストール
macの場合はbrewで簡単にインストールできます。
$ brew install dep $ brew upgrade dep
他の環境では下記curlでダウンロードできます。
$ curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
使い方
だいたいの使い方はhelpを見れば分かるくらい簡単です。
$ dep help Dep is a tool for managing dependencies for Go projects Usage: "dep [command]" Commands: init Set up a new Go project, or migrate an existing one status Report the status of the project's dependencies ensure Ensure a dependency is safely vendored in the project prune Pruning is now performed automatically by dep ensure. version Show the dep version information Examples: dep init set up a new project dep ensure install the project's dependencies dep ensure -update update the locked versions of all dependencies dep ensure -add github.com/pkg/errors add a dependency to the project Use "dep help [command]" for more information about a command.
この中からよく使うものを紹介します。
dep init
まず一番最初はdep initを行います。この初期化コマンドでGopkg.lockとGopkg.tomlとvendorディレクトリが作成されます。
Gopkg.lockはソースコード上でimportしている使っているものの最新バージョンを設定ファイルとして書き出してくれます。このファイルを見ればどんなパッケージを使っているか一目瞭然となります。
次にGopkg.tomlですが、これは使用しているパッケージのバージョンを固定する役割を持ちます。dep initではバージョンが発行されているGitHubリポジトリはtomlファイルに書き出されます。
最後にvendorディレクトリに全てのパッケージがまとめてインストールされます。このディレクトリは.gitignoreで除外してGopkg.lockとGopkg.tomlだけgitで管理するようにしてください。
dep ensure
ensureコマンドはすでに作成されているGopkg.lockとGopkg.tomlをもとにパッケージをインストールしてくれます。
dep ensure -update
ensureに-updateオプションをつけることでGopkg.tomlに設定してあるパッケージも最新に更新し、vendorも更新してくれます。
dep ensure -vendor-only
dep ensureだけだとtomlに記述していなパッケージが更新されてしまうので、-vendor-onlyオプションを付けることで何も更新せずにGopkg.lockとGopkg.tomlの通りにvendorにインストールしてくれます。
なので、厳密に運用する場合はこのプションをつけてパッケージを管理することを推奨します。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25