go install总是尝试使用GOROOT并且go gov下没有列出GOPATH

Ale*_*uer 9 go

我有一个非常令人沮丧的问题GOPATH,尽管被设置,但是.profile在调用时没有出现go env,并且似乎没有影响go install目标位置.

我正在尝试使用go install安装软件包,并且收到此错误,这清楚地表明它正在尝试安装/usr/lib/go,而不是预期的目录/home/me/dev/go.

$ go install github.com/songgao/colorgo
go install github.com/songgao/go.pipeline: mkdir /usr/lib/go/pkg/linux_386/github.com: permission denied
Run Code Online (Sandbox Code Playgroud)

go env 给出以下结果.

$ go env
GOROOT="/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"
Run Code Online (Sandbox Code Playgroud)

但它肯定定的.

$ echo $GOPATH
/home/me/dev/go
Run Code Online (Sandbox Code Playgroud)

更新:我已经导入了GOPATH ~/.profile并获得了它,但我仍然遇到同样的问题.

$ export GOPATH=/home/me/dev/go
$ go env
GOROOT="/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"
Run Code Online (Sandbox Code Playgroud)

再次更新:自从我升级到go1.1beta2后,此问题已停止.我不确定出了什么问题,因为GOPATH看起来设置正确,但现在显然都在工作.

pet*_*rSO 4

GOPATH和工作空间

$ mkdir -p $HOME/dev/go/src
$ mkdir -p $HOME/dev/go/bin
Run Code Online (Sandbox Code Playgroud)

$HOME/.profile

export GOPATH=$HOME/dev/go:
export PATH=$PATH:$HOME/dev/go/bin
Run Code Online (Sandbox Code Playgroud)

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

登录后,首先运行:

$ env | grep -i '^GO'
GOPATH=/home/me/dev/go
$ cat $HOME/.profile
Run Code Online (Sandbox Code Playgroud)

你得到什么输出?

  • 完全不需要重启。 (9认同)
  • 重新启动有点苛刻:)注销并登录就足够了,shell 中的 `source ~/.profile` 将更新该 shell,这对于快速测试很有用。 (8认同)