安装一些go包失败,permission denied错误,例如:
$ 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/darwin_amd64/cover: permission denied
Run Code Online (Sandbox Code Playgroud)
当我尝试使用sudo修复权限问题时,它失败并显示$GOPATH not set错误:
$ sudo go get code.google.com/p/go.tools/cmd/cover
Password:
package code.google.com/p/go.tools/cmd/cover: cannot download, $GOPATH not set. For more details see: go help gopath
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
Voj*_*tek 13
的godoc,go tool vet,go tool cover等特殊go.tools这意味着被安装到系统路径默认与去二进制命令.如果这些命令不可用,您应该尝试重新安装go(或go.tools在您的包装系统中找到).
注意:在OS X 10.8+上,尝试安装go使用Homebrew而不是官方的.pkg安装程序,你的麻烦应该消失了(截至1.4): brew install go
如果要将特定的pkg下载到您的$GOPATH(例如,第三方依赖项),请go get -d <pkg>改为使用.例:
go get -d code.google.com/p/go.tools/cmd/cover
Run Code Online (Sandbox Code Playgroud)您根本不需要使用sudo锤子,因为您$GOPATH应该指向您拥有的目录,因此根本没有permission: denied错误.
但如果您真的知道自己在做什么,并且仍想sudo安装某些东西,则需要先编辑sudoers文件以修复root的GOPATH:
$ sudo visudo
Run Code Online (Sandbox Code Playgroud)
添加以下行:
Defaults env_keep += "GOPATH"
Run Code Online (Sandbox Code Playgroud)
这将使sudo go get(根上下文)获取您的$GOPATH值.
| 归档时间: |
|
| 查看次数: |
7331 次 |
| 最近记录: |