当我尝试安装go工具时,我获得/usr/local/go/pkg/tool/linux_amd64/cover
的权限被拒绝。我可以接受,因为它是/usr/local/
目录并需要root
访问权限。
但我首先怀疑的是,当我将GOPATH
设置到其他位置时,它会尝试在此位置安装。
$ 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"
有人可以指导我解决这个问题吗?可能是什么原因?
答案 0 :(得分:1)
Go尝试在$GOTOOLDIR
中安装该工具,而不是$GOPATH
,因为您可以看到它设置为/usr/local/go/pkg/tool/linux_amd64
。在这里也发生了同样的事情。
用sudo运行它,我想,因为该目录中还有其他工具,我认为将GOTOOLDIR设置到其他地方可能会搞砸了。