运行时go get
,出现权限被拒绝错误,而尝试时,sudo go get
出现未设置GOPATH的错误。
utkbansal@Dell:~$ go get -u golang.org/x/tools/cmd/...
go install golang.org/x/tools/cmd/godoc: open /usr/lib/go/bin/godoc: permission denied
utkbansal@Dell:~$ sudo go get -u golang.org/x/tools/cmd/...
package golang.org/x/tools/cmd/...: cannot download, $GOPATH not set. For more details see: go help gopath
这是我$ PATH的结果,转到env以及转到哪个命令。
utkbansal@Dell:~$ which go
/usr/lib/go/bin/go
utkbansal@Dell:~$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/utkbansal/go"
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT=""
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
utkbansal@Dell:~$ $PATH
bash: /usr/lib/go/bin:/home/utkbansal/miniconda/bin:/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/go/bin: No such file or directory
我该如何解决?
我正在从此PPA使用go1.5 https://launchpad.net/~ubuntu-lxc/+archive/ubuntu/lxd-stable(ppa:ubuntu-lxc / lxd-stable)
godoc
似乎是一般go get
惯例的一个例外,因为它安装到go installation($GOROOT/bin
)而不是$GOPATH
。因此,如果您确实需要更新godoc
(为什么?),则需要执行以下操作:
su
,或sudo su
,或...)$GOPATH
为普通用户$GOPATH
("/home/utkbansal/go"
)godoc
,使用go get -u golang.org/x/tools/cmd/godoc
或所有工具$GOPATH
,即chown -R utkbansal:utkbansal $GOPATH
(仍以root身份)我猜那应该有用。但是:您为什么要更新godoc
?如果您只想要一个未预先安装的特定工具,则应该能够在go get
没有root特权的情况下使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句