GVM - Go Version Manager を使う
Posted on Sat, 21 Sep 2013 03:53:18 +0900
Goのバージョン管理ツール gvm が便利。
Installation
$ bash < <(curl -s https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)
.zshrc (or .bashrc, .profile, etc...) とかに以下の設定を追加。
export PATH=$PATH:$HOME/.gvm/bin [[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
Usage
gvm経由でGoをインストールしてみる。 listall でインストールできるバージョン確認して install で実際にインストールする。
$ gvm listall gvm gos (available) go1 go1.0.1 go1.0.2 go1.0.3 go1.1 go1.1.1 go1.1.2 : : release.r60.1 release.r60.2 release.r60.3 $ gvm install go1.1.2 Installing go1.1.2... * Compiling... $
インストールされているGoのバージョン確認
=> が今使用しているバージョン。systemはgvm経由以外でインストールしたバージョン。
$ gvm list gvm gos (installed) go1.1 => go1.1.2 system $
切り替え
$ gvm use go1.1
バージョン内でパッケージの切り分けも可能
$ gvm pkgset list gvm go package sets (go1.1) => global $
はじめは global パッケージのみ存在。ここを使ってもOK。 パッケージ作成から切り替えまで。
$ gvm pkgset create foobar $ gvm pkgset list gvm go package sets (go1.1) foobar => global $ gvm pkgset use foobar Now using version go1.1@foobar $ gvm pkgset list gvm go package sets (go1.1) => foobar global $
Zsh completion function
gvm にはbash/zsh用の補完関数がすでに用意されています。以下で導入可能です。
autoload bashcompinit bashcompinit source $GVM_ROOT/scripts/completion
これでうまくいくと思いきや、なんか補完が中途半端な感じになってしまうので、 zsh用の補完関数書きました。 よければ使ってみてください。
advanced PS1
使っているGoのバージョンやパッケージ名が ターミナル上で知りたくなると思うので、 環境変数PS1に値を設定するHackをしてみました 。
以下のような感じで表示されます。
user@host$ gvm use go1.1 Now using version go1.1 [gvm|go1.1@global]user@host$ gvm pkgset use foobar Now using version go1.1@foobar [gvm|go1.1@foobar]user@host$
インストールは以下で。(2013.09.25 インストール手順が誤っていたので修正)
$ curl -s https://raw.github.com/hhatto/gvm/use_ps1/binscripts/gvm-installer > gvm-installer $ SRC_REPO="git@github.com:hhatto/gvm.git" bash gvm-installer use_ps1
これでGo開発環境は整いました。