如何使用go get安装软件包?

时间:2015-05-18 04:32:24

标签: github go

我想从github安装软件包到我的gopath,我试过这个:

go get github.com:capotej/groupcache-db-experiment.git

存储库为here

2 个答案:

答案 0 :(得分:83)

  

Command go

     

Download and install packages and dependencies

     

用法:

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

获取导入路径命名的软件包以及它们的下载   依赖。然后安装命名包,例如' go install'。

     

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

     

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

     

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

     

-insecure标志允许从存储库中获取并解析   使用不安全方案(如HTTP)的自定义域。请谨慎使用。

     

-t标志指示get也下载所需的包   为指定的包构建测试。

     

-u标志指示get使用网络更新named   包及其依赖项。默认情况下,get使用网络   检查丢失的包但不使用它来查找更新   现有的包裹。

     

-v标志启用详细进度和调试输出。

     

Get也接受构建标志来控制安装。请参阅“帮助”   建立'

     

签出新包时,get会创建目标目录   GOPATH / src目录/。如果GOPATH包含多个条目,请获取   使用第一个。有关详细信息,请参阅:' go help gopath'。

     

签出或更新包时,查找分支或标签   与本地安装的Go版本匹配。最重要的   规则是,如果本地安装正在运行版本" go1",则获取   搜索名为" go1"的分支或标签。如果不存在这样的版本   检索包的默认分支。

     

当获取签出或更新Git存储库时,它也会更新   存储库引用的任何git子模块。

     

永远不会检出或更新存储在供应商目录中的代码。

     

有关指定包的详细信息,请参阅' go help packages'。

     

了解更多关于如何获得'找到要下载的源代码,请参阅' go   帮助importpath'。

     

本文描述了使用GOPATH进行管理时get的行为   源代码和依赖项。相反,如果正在运行go命令   模块感知模式,get标志和效果的细节变化,如   确实得到了帮助。请参阅帮助模块'并且'去帮助模块 - 获得'。

     

另见:go build,go install,go clean。

例如,显示详细输出

$ 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
$ 

答案 1 :(得分:52)

首先,我们需要GOPATH

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

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

我们在计算机中使用~/gocode路径来存储应用程序的源代码及其依赖项。 GOPATH目录还将存储其包的二进制文件。

然后查看Go env

您的系统必须有$GOPATH$GOROOT,以下是我的环境:

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"

现在,您运行download go package:

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

获取下载并安装导入路径命名的软件包及其依赖项。有关详细信息,请查看here