gpt4 book ai didi

macos - `go get` 因某些 go 包的权限被拒绝而失败

转载 作者:IT王子 更新时间:2023-10-29 01:22:24 26 4
gpt4 key购买 nike

安装一些 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

当我尝试使用 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

我该如何解决这个问题?

最佳答案

  1. godoc , go tool vet , go tool cover等很特别go.tools默认情况下使用 go 二进制文件安装到系统路径中的命令。如果这些命令不可用,您应该尝试重新安装 go 本身(或在您的打包系统中找到 go.tools)。

    注意:在 OS X 10.8+ 上,尝试使用 Homebrew 安装 go而不是官方的 .pkg 安装程序,你的麻烦应该消失了(从 go 1.4 开始):brew install go

  2. 如果你想下载一个特定的 pkg 到你的 $GOPATH (例如第 3 方依赖项),使用 go get -d <pkg>反而。示例:

    go get -d code.google.com/p/go.tools/cmd/cover
  3. 不应该需要使用 sudo锤子,作为你的$GOPATH应该指向您拥有的目录,因此没有 permission: denied完全错误。

    但是如果你真的知道你在做什么,你仍然想sudo安装一些东西,你需要先编辑 sudoers 文件来修复根目录的 GOPATH:

    $ sudo visudo

    添加以下行:

    Defaults    env_keep += "GOPATH"

    这将使 sudo go get (根上下文)拿起你的 $GOPATH值(value)。

关于macos - `go get` 因某些 go 包的权限被拒绝而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26773198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com