2014-12-03 136 views
1

当我尝试安装工具去我越来越拒绝/usr/local/go/pkg/tool/linux_amd64/cover许可。我可以接受,因为它是/usr/local/目录,需要root访问。 但我的第一个疑问是,当我将GOPATH设置为某个其他位置时,它试图在此位置进行安装。权限被拒绝错误“go.tools”

$ go version 
go version go1.2.1 linux/amd64 

$ export GOPATH='/home/vagrant/repos/atlantis-router/vendor' 
$ go get code.google.com/p/go.tools/cmd/cover 
go install code.google.com/p/go.tools/cmd/cover: open /usr/local/go/pkg/tool/linux_amd64/cover: permission denied 

$ go env 
GOARCH="amd64" 
GOBIN="" 
GOCHAR="6" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="linux" 
GOOS="linux" 
GOPATH="/home/vagrant/repos/atlantis-router/vendor" 
GORACE="" 
GOROOT="/usr/local/go" 
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" 
TERM="dumb" 
CC="gcc" 
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread" 
CXX="g++" 
CGO_ENABLED="1" 

有人能指导我解决这个问题吗?可能是什么原因?

回答

1

Go试图在$GOTOOLDIR而不是$GOPATH上安装该工具,并且您可以看到它设置为/usr/local/go/pkg/tool/linux_amd64。这里同样的事情发生在我身上。

只是使用sudo运行它,我想,因为有在该目录中的其他工具,我认为GOTOOLDIR设置到别的地方可能会搞砸。

+0

'sudo'与'sudo'运行失败,'sudo:go:command not found'失败。我用“须藤去找code.google.com/p/go.tools/cmd/cover” – ram 2014-12-03 13:46:23

+0

@ram在/ usr /本地/去/ bin'加上'以root的$ PATH – 2014-12-03 13:47:24

+0

我的$ PATH显示我它被包含在$ PATH。 “$ echo $ PATH /home/vagrant/bin:/usr/local/sbin:....:/usr/local/go/bin”。与你所说的不同吗? – ram 2014-12-03 13:50:14