[go] 使用 gvm 管理 go 版本

gvm 是个 go 版本管理工具。 可以让多个版本的 go 编译器在同一台机器上共存,并可以方便的切换要使用的 go 版本。

安装

安装依赖:

$ sudo apt-get install curl git mercurial make binutils bison gcc build-essential

安装 gvm:

$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

如果上面的脚本提示 git clone 错误的话,可以通过下面的方式解决:

$ wget https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer
$ vim gvm-installer   # 修改 gvm-installer 文件
$ #  SRC_REPO=${SRC_REPO:-https://github.com/moovweb/gvm.git} 
$ # 改为 SRC_REPO=${SRC_REPO:-git://github.com/moovweb/gvm.git} 
$ bash gvm-installer
Cloning from git://github.com/moovweb/gvm.git to /home/xx/.gvm
Created profile for existing install of Go at "/usr/lib/go"
Installed GVM v1.0.22

Please restart your terminal session or to get started right away run
 `source /home/xx/.gvm/scripts/gvm`

激活 gvm 脚本:

$ source /home/xx/.gvm/scripts/gvm
$ gvm version
Go Version Manager v1.0.22 installed at /home/xx/.gvm

使用

安装不同版本的 go,比如安装 1.3 版本:

$ gvm install go1.3

如果提示如下错误,是因为当前网络无法访问 go 源码仓储地址:

$ gvm install go1.3
Downloading Go source...
ERROR: Couldn't download Go source. Check the logs /home/xx/.gvm/logs/go-download.log
$ tail ~/.gvm/logs/go-download.log
中止: 失败: Network is unreachable

可以使用我在 bitbucket 上创建的镜像库(通过 -s/--source 指定 go 源码 hg 仓库的地址):

$ gvm install go1.3 --source=https://mozillazg@bitbucket.org/mozillazg/go
Downloading Go source...
Installing go1.3...
 * Compiling...

查看系统中安装的 go 版本:

$ gvm list

gvm gos (installed)

   go1.3
   system

切换当前使用的 go 版本:

$ go version
go version go1.2.1 linux/amd64
$
$ gvm use go1.3
Now using version go1.3
$ go version
go version go1.3 linux/amd64

参考资料


Comments