为了账号安全,请及时绑定邮箱和手机立即绑定

go install 总是尝试使用 GOROOT 并且 GOPATH 未在 go env 下列出

go install 总是尝试使用 GOROOT 并且 GOPATH 未在 go env 下列出

Go
料青山看我应如是 2021-06-02 22:42:37
我遇到了一个非常令人沮丧的问题GOPATH,尽管设置在 中,但.profile在调用时没有出现go env,并且似乎没有影响go install目标位置。我试图使用go install安装软件包,并正在此错误,这清楚地表明,它正试图安装的/usr/lib/go,而不是预期的目录/home/me/dev/go。$ go install github.com/songgao/colorgogo install github.com/songgao/go.pipeline: mkdir /usr/lib/go/pkg/linux_386/github.com: permission deniedgo env 给出以下结果。$ go envGOROOT="/usr/lib/go"GOBIN=""GOARCH="386"GOCHAR="8"GOOS="linux"GOEXE=""GOHOSTARCH="386"GOHOSTOS="linux"GOTOOLDIR="/usr/lib/go/pkg/tool/linux_386"GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread"CGO_ENABLED="1"但它肯定是设置的。$ echo $GOPATH/home/me/dev/go更新:我已经导出了 GOPATH~/.profile并获取了它,但我仍然遇到同样的问题。$ export GOPATH=/home/me/dev/go$ go envGOROOT="/usr/lib/go"GOBIN=""GOARCH="386"GOCHAR="8"GOOS="linux"GOEXE=""GOHOSTARCH="386"GOHOSTOS="linux"GOTOOLDIR="/usr/lib/go/pkg/tool/linux_386"GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread"CGO_ENABLED="1"再次更新:自从我升级到 go1.1beta2 后,此问题已停止。我不确定出了什么问题,因为GOPATH似乎设置正确,但现在显然一切正常。
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

GOPATH 和工作区


$ mkdir -p $HOME/dev/go/src

$ mkdir -p $HOME/dev/go/bin

在$HOME/.profile:


export GOPATH=$HOME/dev/go:

export PATH=$PATH:$HOME/dev/go/bin

然后重新启动或注销并登录。


登录后,首先运行:


$ env | grep -i '^GO'

GOPATH=/home/me/dev/go

$ cat $HOME/.profile

你得到什么输出?


查看完整回答
反对 回复 2021-06-07
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

创建一个软链接,然后复制go二进制文件/usr/local如下:

# ln -sf /usr/local/go/bin/go /usr/bin/go


查看完整回答
反对 回复 2021-06-07
?
湖上湖

TA贡献2003条经验 获得超2个赞

当您提供设置 GOPATH 的证据时,您问题的第二部分 - GOPATH 未在 go env 下列出 - 可能是由您安装的版本的“go env”引起的。go1 (linux) 和 go1.0.2 (windows) 版本的“go env”都不显示 GOPATH。如果你看一下源(GOROOT / src目录/ CMD /去/ env.go),你会发现就在顶部元素显示(mkEnv)与GOROOT开始,并列表中包含GOPATH。

版本 go1.0.3 (windows) 确实显示 GOPATH;但是,源中的相应列表以 GOARCH 开头。

我承认这并不能解决您问题的第一部分——(试图)安装到 GOROOT 中——但也许以上内容可以帮助您专注于罪魁祸首(构建过程)。


查看完整回答
反对 回复 2021-06-07
  • 3 回答
  • 0 关注
  • 229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信