GVM - Go Version Manager を使う
2013-09-21 - ⧖ 1.0 minGoのバージョン管理ツール 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用の補完関数書きました。 よければ使ってみてください。
zsh_completions/_gvm at master ・ hhatto/zsh_completions
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開発環境は整いました。