Golang包版本管理

一直Golang缺少版本管理工具,go get 按照包只能从有限的几个源下载包,且包没有版本号,
如果项目中使用老的包,就没法了,一直再想go get如果有版本号多好。

终于发现了一个管理工具:gpmgvp

gpm是依赖包下载工具,gvp是改变$GOPATH工具,工具类似Python virtualenv

一、使用方法:

1、在根目录定义一个 Godeps 文件

1
2
3
4
5
$ cat Godeps
github.com/nu7hatch/gotrail v0.0.2
github.com/replicon/fast-archiver v1.02
launchpad.net/gocheck r2013.03.03 # Bazaar repositories are supported
code.google.com/p/go.example/hello/... ae081cd1d6cc # And so are Mercurial ones

2、下载依赖包 gopm install

3、设置$GOPATH

1
2
3
4
# in
source gvp in
# out
source gvp out

然后执行一下 go env 看一下环境变量。

二、Install on Mac OS X

1
2
sudo brew install gpm
sudo brew install gvp

其他系统的安装,参考下面的参考网站。

三、其他

gpm、gvp 如果是一个命令就更好了,分成了2个项目。
还有就是,如果能改变命令提示符的前缀$PS1就更好了(类似virtualenv)这样可以直接看到
已经进入新的gopath下,退出后,在进入之前的gopath。

四、参考网站