mmts1007’s diary

プログラミング関連の技術系ブログです。

Go 開発環境構築 [glide のインストール]

前回からの続きで今回はパッケージ管理ツール

Go のパッケージ管理ツール

Go のパッケージ管理ツールは以下の通り複数ある。
今回は Star 数の多い glide について記載する。

2017/11/02 現在

ツール名 Star
glide 5611
dep 5513
godep 5014
govendor 2615
gb 2006

注意点

公式がパッケージ管理ツール dep を開発している。
glide の READMEdep への移行を考えてくれと記載されているが、今回は glide を紹介する。

理由としては、以下の通りまだ大きな変更が入る可能性があるためである。
参考: https://github.com/golang/dep#current-status

  • 取り込まれるのは Go 1.10 以降である事 (参考: ロードマップ)
  • まだ厄介なバグが含まれている事
  • 遅い事

glide とは

github.com

  • 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 の基本的な使い方は以上