Go 開発環境構築 [glide のインストール]
前回からの続きで今回はパッケージ管理ツール
Go のパッケージ管理ツール
Go のパッケージ管理ツールは以下の通り複数ある。
今回は Star 数の多い glide について記載する。
2017/11/02 現在
ツール名 | Star |
---|---|
glide | 5611 |
dep | 5513 |
godep | 5014 |
govendor | 2615 |
gb | 2006 |
注意点
公式がパッケージ管理ツール dep を開発している。
glide の README に dep への移行を考えてくれと記載されているが、今回は glide を紹介する。
理由としては、以下の通りまだ大きな変更が入る可能性があるためである。
参考: https://github.com/golang/dep#current-status
- 取り込まれるのは Go 1.10 以降である事 (参考: ロードマップ)
- まだ厄介なバグが含まれている事
- 遅い事
glide とは
- npm, Maven, Bundler のようなGo 言語のパッケージ管理ツール
- プロジェクトに依存するパッケージを vendor ディレクトリで管理する
- プロジェクトごとに依存パッケージのバージョンを固定できる
glide のインストール
1コマンドでインストール可能
参考: https://github.com/Masterminds/glide#install
curl https://glide.sh/get | sh
glide の使い方
参考: https://github.com/Masterminds/glide#usage
glide の利用開始
$ glide create
glide.yaml
ファイルが自動生成される
glide 経由でパッケージをダウンロードする
例として echo というパッケージをダウンロードする場合
$ glide get github.com/labstack/echo
vendor
ディレクトリ配下に指定したパッケージがダウンロードされる
$ tree vendor/
vendor/
└── github.com
└── labstack
└── echo
また glide.yaml
, glide.lock
にダウンロードしたパッケージが記載される
# glide.yaml package: github.com/mmts1007/glide_sample import: - package: github.com/labstack/echo version: ^3.2.3
# glide.lock hash: d8348bf86f67e8762c036cca040e09d39a74eec9cbe7d8b4f5e6ad9148bc2495 updated: 2017-11-02T14:10:52.482634978Z imports: - name: github.com/labstack/echo version: cec7629194fe4bf83b0c72d9a02d340c7a1468ac testImports: []
glide で管理しているパッケージのアップデート
glide.yaml
に記載されているパッケージのアップデートを行う
$ glide up
依存パッケージのダウンロード
プロジェクトに glide.lock
ファイルがある場合、glide.lock
ファイルの内容を元に依存パッケージをダウンロードすることができる
$ glide install
glide の基本的な使い方は以上