在本地目录中安装包

Posted

技术标签:

【中文标题】在本地目录中安装包【英文标题】:Installing packages in a local directory 【发布时间】:2012-09-12 21:39:57 【问题描述】:

(带有go get... 的包)的最佳做法是什么?

示例:我想试用 Revel Web 框架,但我不想在 /usr/local/go 上安装我的 Go。

通常我会写在主页上的sudo go get github.com/robfig/revel,但这会将其安装在/usr/local/go/src/pkg/... 下方。

有没有一种简单的方法可以说(例如)go get --local ... 并将包放在当前(子)目录中?

【问题讨论】:

很难选择接受哪个答案。目前我只玩过GOPATH,所以@keks 的答案是我选择的答案,但将来可能会改变:) 【参考方案1】:

在启用现代模块的 go(在 go 1.11 中引入)中,您可以使用带有 GOBIN env var 的 gobin 程序来指定二进制文件的目标:

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

gobin的安装如下:

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

【讨论】:

【参考方案2】:

您可能需要考虑使用Go Version Manager (gvm)。

除了在 Go 版本之间轻松切换之外,它还允许您在 pkgsets(“工作区”)之间切换。

首先你创建一个集合

gvm pkgset create myproject

然后你就用它

gvm pkgset use myproject

像魅力一样工作。

【讨论】:

【参考方案3】:

要扩展 keks 答案,您可以将 .bashrc 更新为如下所示

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

现在使用go get 安装的所有软件包都与 go 发行版分开。

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于在本地目录中安装包的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Yarn 工作区的一个 package.json 文件中安装包?

liunx中安装包及其应用

学python在pycharm中安装包时所遇到的问题

linux CentOS7 中安装包管理:rpm yum及源码包安装使用

在 Python 中安装包

在 Python 2.7.9 中安装包 [重复]