使用gvm来安装并管理golang环境

曾经折腾golang的时候,还很简单,mac上只要brew install go就可以了,自从golang1.5加入了自省以后,一切变的都不那么美好,写这篇文章的时候brew默认安装的已经是go1.6版本,安装后粗看上去都是好的,但是在配置交叉编译环境时,遇到了问题,总是提示找不到zversion.go的文件。

这里推荐一个叫做gvm:Go Version Manager 的工具来替代brew完成golang的安装与配置。
这个工具目前开源并托管在github上:https://github.com/moovweb/gvm ,具体的使用方法也可以参考官方github上的readme,下面我就将我的使用过程大概列举一下,作为备忘。
BTW:我的环境是MacOS 10.11.4

安装依赖

brew install mercurial bzr

安装gvm

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

执行后,会有以下的提示:

Cloning from https://github.com/moovweb/gvm.git to /Users/tan9le/.gvm
No existing Go versions detected
Installed GVM v1.0.22

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

这里关闭并重启开启终端,或者在当前终端执行source /Users/tan9le/.gvm/scripts/gvm命令就可以生效了。

使用gvm安装golang

gvm list   #列出已安装的golang环境
gvm listall  #列出所有的golang环境(包括未安装)
gvm install go1.4   #安装golang 1.4的环境,可以在gvm listall中找到所有的可用版本
gvm use go1.4 [--default] #将当前环境设置为golang 1.4
gvm pkgset create test #创建一个名为test的环境变量集,我们可以在环境变量集中设置相关的环境变量,比如为linux打包是一份环境变量,为windows打包又是一份环境变量等等
gvm pkgset use test #使用名为test的环境变量集
gvm pkgenv #修改当前使用的环境变量

这里要注意该死的go 1.5开始的自省,在安装golang版本>=1.5时,需要先安装golang 1.4

Go 1.5+ removed the C compilers from the toolchain and replaced them with one written in Go. Obviously, this creates a bootstrapping problem if you don't already have a working Go install. In order to compile Go 1.5+, make sure Go 1.4 is installed first.

当然,如果要手动安装golang 1.5/1.6也是可以的,先安装golang 1.4.3,然后在make之前需要指定环境变量$GOROOT_BOOTSTRAP,将其指向golang 1.4.3的安装目录即可

标签: golang, gvm