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

新手上路,请多包涵

我想从 github 安装包到我的 $GOPATH ,我试过这个:

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

存储库在 这里

原文由 roger 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 696
2 个回答

命令去

下载并安装包和依赖项

用法:

>  go get [-d] [-f] [-t] [-u] [-v] [-fix] [-insecure] [build flags] [packages]
>
> ```
>
> Get 下载由导入路径命名的包及其依赖项。然后它会安装指定的包,例如“go install”。
>
>  -d 标志指示 get 在下载包后停止;也就是说,它指示 get 不要安装软件包。
>
>  -f 标志仅在设置 -u 时有效,强制 get -u 不验证每个包是否已从其导入路径隐含的源代码控制存储库中签出。如果源是原始文件的本地分支,这将很有用。
>
>  -fix 标志指示 get 在解析依赖项或构建代码之前对下载的包运行修复工具。
>
>  -insecure 标志允许使用不安全的方案(例如 HTTP)从存储库中获取并解析自定义域。谨慎使用。
>
>  -t 标志指示 get 还下载为指定包构建测试所需的包。
>
>  -u 标志指示 get 使用网络更新命名包及其依赖项。默认情况下,get 使用网络检查丢失的包,但不使用它来查找现有包的更新。
>
>  -v 标志启用详细进度和调试输出。
>
> Get 还接受构建标志来控制安装。请参阅“帮助构建”。
>
> 签出新包时,get 会创建目标目录 GOPATH/src/。如果 GOPATH 包含多个条目,则 get 使用第一个。有关详细信息,请参阅:'go help gopath'。
>
> 当签出或更新包时,get 查找与本地安装的 Go 版本匹配的分支或标签。最重要的规则是,如果本地安装运行的是“go1”版本,get 会搜索名为“go1”的分支或标记。如果不存在这样的版本,它会检索包的默认分支。
>
> 当 go get 签出或更新 Git 存储库时,它还会更新存储库引用的任何 git 子模块。
>
> Get 从不检出或更新存储在供应商目录中的代码。
>
> 有关指定包的更多信息,请参阅“go help packages”。
>
> 有关“go get”如何找到要下载的源代码的更多信息,请参阅“go help importpath”。
>
> 本文描述了使用 GOPATH 管理源代码和依赖项时 get 的行为。相反,如果 go 命令以模块感知模式运行,则 get 的标志和效果的详细信息会发生变化,“go help get”也是如此。请参阅“go help modules”和“go help module-get”。
>
> 另请参阅:构建、安装、清理。

* * *

例如,显示详细输出,

\( 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 \)

”`

原文由 peterSO 发布,翻译遵循 CC BY-SA 4.0 许可协议

首先,我们需要 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]

获取下载并安装由导入路径命名的包及其依赖项。有关详细信息,您可以查看 此处

原文由 Pravin Mishra 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题