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