2012-09-20 198 views
8

在本地目录中安装软件包(使用go get...)的最佳做法是什么?golang:将软件包安装在本地目录中

例如:我想尝试Revel网络框架,但我不想让我的安装在/usr/local/go混乱。

通常我会说sudo go get github.com/robfig/revel写在主页上,但它会安装在/usr/local/go/src/pkg/...下面。

有没有简单的方法来说(例如)go get --local ...并且在当前(子)目录中有包?

+0

很难选择接受哪个答案。目前我只用'GOPATH'玩过,所以@ keks的答案是我选择的答案,但这可能会在未来发生变化:) – topskip

回答

8

您可以导出env变量GOPATH。对我而言,它是。这个文件夹有子文件夹bin,pkgsrc,所以它就像/usr/local/go。然后go-tool会自动下载,编译和安装软件包到这个目录中。

16

要扩大keks回答,您可以更新你的.bashrc,看起来像这样

export GOROOT=/usr/local/go 
export GOPATH=~/workspace/me/go 
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 

现在用go get安装了所有的包都是从去分配分开。

9

您可能要考虑使用Go Version Manager (gvm)

除了轻松切换Go版本之外,它还允许您在pkgsets(“workspaces”)之间切换。

首先你创建一组

gvm pkgset create myproject 

,然后你使用它

gvm pkgset use myproject 

就像一个魅力。