2015-05-18 77 views

回答

31

Command go

Download and install packages and dependencies

用法:

go get [-d] [-f] [-fix] [-t] [-u] [build flags] [packages] 

获取下载并安装由导入路径命名的包, 与它们的依赖一起。

-d标志指示在下载软件包后停止;那 是,它指示不安装包。

-f标志仅在设置-u时有效,强制get -u不验证 每个包已从其导入路径隐含的源控件 存储库中检出。如果 源是原始的本地分支,这可能很有用。

-fix标志指示在解析依赖关系或构建代码之前,在下载的 程序包上运行修复工具。

-t标志指示同时下载所需的软件包到 构建指定软件包的测试。

-u标志指示可以使用网络更新命名的 程序包及其依赖项。默认情况下,get使用网络 检查丢失的软件包,但不使用它来查找 现有软件包的更新。

获取也接受构建标志来控制安装。请参阅'去帮助 建立'。

当检出或更新包,拿到寻找一个分支或标记 是围棋的本地安装的版本相匹配。最重要的 规则是,如果本地安装运行版本为“go1”,则获取 将搜索名为“go1”的分支或标记。如果不存在这样的版本, 将检索最新版本的软件包。

有关指定软件包的更多信息,请参阅'go help packages'。

欲了解更多有关如何“去获得”查找源代码下载,请参阅“走出去 帮助importpath”。

例如,

$ go get -v github.com/capotej/groupcache-db-experiment/... 
github.com/capotej/groupcache-db-experiment (download) 
github.com/golang/groupcache (download) 
github.com/golang/protobuf (download) 
github.com/capotej/groupcache-db-experiment/api 
github.com/capotej/groupcache-db-experiment/client 
github.com/capotej/groupcache-db-experiment/slowdb 
github.com/golang/groupcache/consistenthash 
github.com/golang/protobuf/proto 
github.com/golang/groupcache/lru 
github.com/capotej/groupcache-db-experiment/dbserver 
github.com/capotej/groupcache-db-experiment/cli 
github.com/golang/groupcache/singleflight 
github.com/golang/groupcache/groupcachepb 
github.com/golang/groupcache 
github.com/capotej/groupcache-db-experiment/frontend 
$ 
+2

如果这有助于任何人解决我的问题('package github.com/coreos/go-iptables.git :github.com/ path中的无效版本控制后缀)是从Github URL中删除'.git'后缀。 – Excalibur

+0

@Excalibur你是一个天才:) – DoubleA

+0

通常我应该将包路径指向'main.go'? –

16

首先,我们需要GOPATH

的$ GOPATH是由它的环境变量指定的文件夹(或一组文件夹)。我们必须注意到,这不是安装Go的$ GOROOT目录。

export GOPATH=$HOME/gocode 
export PATH=$PATH:$GOPATH/bin 

我们用〜/ gocode路径在我们的电脑用于存储应用程序及其依赖的来源。 GOPATH目录还将存储其软件包的二进制文件。

然后检查围棋ENV

您的系统必须有$ GOPATH和$ GOROOT,下面是我的ENV:

GOARCH="amd64" 
GOBIN="" 
GOCHAR="6" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="linux" 
GOOS="linux" 
GOPATH="/home/elpsstu/gocode" 
GORACE="" 
GOROOT="/home/pravin/go" 
GOTOOLDIR="/home/pravin/go/pkg/tool/linux_amd64" 
CC="gcc" 
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0" 
CXX="g++" 
CGO_ENABLED="1" 

现在,运行下载去包:

go get [-d] [-f] [-fix] [-t] [-u] [build flags] [packages] 

获取下载并安装由导入路径命名的包及其依赖关系IES。欲了解更多详情,你可以看看here

+1

我去的环境已经被还好,但我不熟悉规则'去GET',所以'github.com:capotej/groupcache-db-experiment .git'不是非法的,合法路径是什么? – roger

+0

尝试去获得-v github.com/capotej/groupcache-db-experiment/... as @peterSO说 –