Golangのパッケージバージョン管理をdepで行う




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

dep

depはGolangで使うパッケージのバージョン管理を行ってくれます。Node.jsでいうところのnpmですね。

Golangにはデフォルトでgo getというコマンドでパッケージのインストールができますが、バージョンの固定ができないので実運用には耐えられません。

なのでdepを使ってパッケージ管理をするようにしましょう。

インストール

macの場合はbrewで簡単にインストールできます。

他の環境では下記curlでダウンロードできます。

使い方

だいたいの使い方はhelpを見れば分かるくらい簡単です。

この中からよく使うものを紹介します。

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にインストールしてくれます。

なので、厳密に運用する場合はこのプションをつけてパッケージを管理することを推奨します。

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です