こんにちは!エンジニアのギです。
最近、プロジェクトでGoを使い始めました。
各プロジェクトでGoの環境設定が違うため、プロジェクト毎に
環境を再設定しなければなりません(これは、結構面倒な仕事です)
そこで、すぐにプロジェクトを切り替えられるようにする方法を調べてみました。
今回、GVMの使い方をまとめて説明します!
MacでGVMをインストールする
GVMをインストールするために、mercurialが必要となります。
事前にmercurialを入れておきます。
xcode-select --install
brew update
brew install mercurial
次に、GVMをインストールします。
bash < <(curl -s https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)
source $HOME/.gvm/scripts/gvm
zshを使っている場合、以下のコマンドでインストールします。
zsh < <(curl -s https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)
source $HOME/.gvm/scripts/gvm
インストールが終わったら、GVMのバージョンを確認できます。
gvm version
GVMは以下のコマンドでアンインストールできます。
gvm implode
GVMを使う
- インストールしたGOバージョン一覧を表示する
gvm list
- GVMでGoをインストールする
gvm install go{goバージョン} -B
- GOバージョンを切り替える
gvm use go{goバージョン} --default
プロジェクトの環境を設定する
例えば、二つプロジェクトがある。hogeプロジェクトはgo1.7を使って、GOPATHは$HOME/hogeです。
fugaプロジェクトはgo1.8を使って、GOPATHは$HOME/fugaです。
go1.7のGOROOTは$HOME/.gvm/go1.7で、go1.8のGOROOTは$HOME/.gvm/go1.8です。
まずは、GOプロジェクト用のフォルダを作成しておきます。
mkdir -p $HOME/hoge/{pkg,bin,src}
mkdir -p $HOME/fuga/{pkg,bin,src}
次に、GVMでプロジェクトの環境管理の設定ファイルを作ります。
gvm pkgset create hoge
gvm pkgset create fuga
作成したものを確認します。 gvm pkgset list
次に、GOPATHを編集します。
gvm pkgenv hoge
gvm pkgenv fuga
行12や行16を以下のように変更してください。
# hogeプロダクトの設定
# 行12
export GOPATH; GOPATH="/Users/nghinv/.gvm/pkgsets/go1.7/hoge:$HOME/hoge:$GOPATH"
# 行16
export PATH; PATH="/Users/nghinv/.gvm/pkgsets/go1.7/hoge/bin:${GVM_OVERLAY_PREFIX}/bin:$HOME/hoge/bin:${PATH}"
# fugaプロダクトの設定
# 行12
export GOPATH; GOPATH="/Users/nghinv/.gvm/pkgsets/go1.8/hoge:$HOME/fuga:$GOPATH"
# 行16
export PATH; PATH="/Users/nghinv/.gvm/pkgsets/go1.8/hoge/bin:${GVM_OVERLAY_PREFIX}/bin:$HOME/fuga/bin:${PATH}"
これで、設定は終わりです。
hogeプロジェクトを切り替える
gvm pkgset use hoge
fugaプロジェクトを切り替える
gvm pkgset use fuga
以上
私のブログより