我想从github安装软件包到我的gopath,我试过这个:
go get github.com:capotej/groupcache-db-experiment.git
Run Code Online (Sandbox Code Playgroud)
存储库在这里.
pet*_*rSO 103
用法:
Run Code Online (Sandbox Code Playgroud)go get [-d] [-f] [-t] [-u] [-v] [-fix] [-insecure] [build flags] [packages]
获取导入路径指定的包及其依赖项的下载.然后安装命名包,比如'go install'.
-d标志指示在下载软件包后停止; 也就是说,它指示不安装软件包.
-f标志仅在设置-u时有效,强制get -u不验证每个包是否已从其导入路径隐含的源控制存储库中检出.如果源是原始的本地分支,这可能很有用.
-fix标志指示get在解析依赖项或构建代码之前在下载的包上运行修复工具.
-insecure标志允许从存储库中提取并使用不安全的方案(如HTTP)解析自定义域.谨慎使用.
-t标志指示get还下载构建指定包的测试所需的包.
-u标志指示get使用网络更新命名包及其依赖项.默认情况下,get使用网络检出丢失的包,但不使用它来查找现有包的更新.
-v标志启用详细进度和调试输出.
Get还接受构建标志来控制安装.请参阅'go help build'.
签出新包时,get创建目标目录GOPATH/src /.如果GOPATH包含多个条目,则get使用第一个条目.有关详细信息,请参阅:'go help gopath'.
签出或更新包时,查找与本地安装的Go版本匹配的分支或标记.最重要的规则是,如果本地安装运行版本为"go1",则搜索名为"go1"的分支或标记.如果不存在此类版本,则会检索包的默认分支.
当获取签出或更新Git存储库时,它还会更新存储库引用的任何git子模块.
永远不会检出或更新存储在供应商目录中的代码.
有关指定包的更多信息,请参阅"go help packages".
有关"go get"如何找到要下载的源代码的更多信息,请参阅"go help importpath".
本文描述了使用GOPATH管理源代码和依赖项时get的行为.如果go命令在模块感知模式下运行,则get的标志和效果的细节会发生变化,就像'go help get'一样.请参阅"go help modules"和"go help module-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
$
Run Code Online (Sandbox Code Playgroud)
bla*_*een 93
请注意,自 Go 1.17 起,go get
不推荐使用以下命令安装包:
不推荐使用 get 构建和安装软件包。在未来的版本中,该
-d
标志将默认启用,并且go get
仅用于调整当前模块的依赖关系。要使用当前模块的依赖项安装包,请使用go install
.
go get
不再以模块感知模式构建或安装包。go get
现在致力于调整 go.mod 中的依赖关系。实际上,该-d
标志始终处于启用状态。
(该-d
标志指示go get
仅下载软件包而不安装它们。)
改用go install
:
Run Code Online (Sandbox Code Playgroud)# Install the latest version of a program, # ignoring go.mod in the current directory (if any). $ go install golang.org/x/tools/gopls@latest # Install a specific version of a program. $ go install golang.org/x/tools/gopls@v0.6.4 # Install a program at the version selected by the module in the current directory. $ go install golang.org/x/tools/gopls # Install all programs in a directory. $ go install ./cmd/...
要安装任何其他软件包,只需:
go install <package_name>@<version>
Run Code Online (Sandbox Code Playgroud)
(您可以省略版本后缀@<version>
,例如@latest
)
Go 1.18 发行说明还提到它将go get
像以前一样与GO111MODULE=off
. 然而,在 2022 年,您绝对应该迁移到模块并使用go install
。
Pra*_*hra 66
首先,我们需要GOPATH
$ GOPATH是由其环境变量指定的文件夹(或文件夹集).我们必须注意,这不是安装Go的$ GOROOT目录.
export GOPATH=$HOME/gocode
export PATH=$PATH:$GOPATH/bin
Run Code Online (Sandbox Code Playgroud)
我们在计算机中使用〜/ 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"
Run Code Online (Sandbox Code Playgroud)
现在,您运行download go package:
go get [-d] [-f] [-fix] [-t] [-u] [build flags] [packages]
Run Code Online (Sandbox Code Playgroud)
获取下载并安装导入路径命名的软件包及其依赖项.有关详细信息,请查看此处.