go get...
在本地目录中安装包(带有 的包)的最佳做法是什么?
示例:我想试用Revel Web 框架,但我不想在/usr/local/go
.
通常我会说sudo go get github.com/robfig/revel
写在主页上,但这会将它安装在/usr/local/go/src/pkg/...
.
有没有一种简单的方法可以说(例如)go get --local ...
并将包放在当前(子)目录中?
go get...
在本地目录中安装包(带有 的包)的最佳做法是什么?
示例:我想试用Revel Web 框架,但我不想在/usr/local/go
.
通常我会说sudo go get github.com/robfig/revel
写在主页上,但这会将它安装在/usr/local/go/src/pkg/...
.
有没有一种简单的方法可以说(例如)go get --local ...
并将包放在当前(子)目录中?
要扩展 keks 答案,您可以将 .bashrc 更新为如下所示
export GOROOT=/usr/local/go
export GOPATH=~/workspace/me/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
现在安装的所有软件包go get
都与 go 发行版分开。
您可以导出环境变量GOPATH
。对我来说是~/local/lib/go
。这个文件夹有子文件夹bin
,pkg
和src
, 所以它就像/usr/local/go
. -toolgo
会自动下载、构建和安装包到这个目录。
您可能需要考虑使用Go Version Manager (gvm)。
除了在 Go 版本之间轻松切换之外,它还允许您在pkgsets(“工作区”)之间切换。
首先你创建一个集合
gvm pkgset create myproject
然后你用它
gvm pkgset use myproject
奇迹般有效。
在启用现代模块的 go(在 go 1.11 中引入)中,您可以将gobin程序与 GOBIN env var 一起使用,以指定二进制文件的目标:
GOBIN=./local gobin github.com/robfig/revel
gobin的安装如下:
GO111MODULE=off go get -u github.com/myitcv/gobin