在本地目录中安装包(Installing packages in a local directory

2019-07-31 17:55发布

什么是安装软件包的最佳实践(那些go get... )在本地目录?

例如:我想尝试一下狂欢 web框架,但我不希望我的杂乱去安装在/usr/local/go

通常我会说sudo go get github.com/robfig/revel主页上所写,而是将其安装在它下面/usr/local/go/src/pkg/...

有一种简单的方式来表达(比如) go get --local ...而在目前的(子)目录下的包?

Answer 1:

您可以导出环境变量GOPATH 。 对我来说这是~/local/lib/go 。 此文件夹有子文件夹binpkgsrc ,所以它就像/usr/local/go 。 在go ,然后-工具会自动下载,构建和安装包到这个目录。



Answer 2:

为了扩大keks的回答,您可以更新你的.bashrc看起来像这样

export GOROOT=/usr/local/go
export GOPATH=~/workspace/me/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

现在,随着安装的所有软件包go get来自旅途中的分布是分开的。



Answer 3:

您可能要考虑使用去版本管理器(GVM) 。

除了轻松地去版本之间切换,也可以让你pkgsets(“工作区”)之间切换。

首先创建一组

gvm pkgset create myproject

然后你使用它

gvm pkgset use myproject

奇迹般有效。



Answer 4:

在现代模块启用围棋(围棋1.11介绍),你可以使用GOBIN与GOBIN的环境变量指定的二进制文件的目标程序:

GOBIN=./local gobin github.com/robfig/revel

GOBIN的安装可以这样判定:

GO111MODULE=off go get -u github.com/myitcv/gobin


文章来源: Installing packages in a local directory