go - 去安装复制权限被拒绝

标签 go gopath

在我的go install文件夹上运行cmd时,出现错误:

go install cmd/go: copying 
/var/folders/wh/9y99138n2w1bvcwxz3tbb8zw0000g
n/T/go-build195667123/b150/exe/a.out: open 
/usr/local/go/bin/go: permission denied
看来我的环境变量设置正确:
GOCACHE="/Users/<USER>/Library/Caches/go-build"
GOENV="/Users/<USER>/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/<USER>/src/unbias"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
这是我当前项目的目录:位于我的go路径内:/Users/<USER>/src/unbias enter image description here
由于权限错误似乎不在我的项目中,而是在我的安装路径中,因此我不确定是否应该更改此类文件的所有权。
total 37032
drwxr-xr-x   4 root  wheel   128B Jul 16 15:53 .
drwxr-xr-x  20 root  wheel   640B Jul 16 15:29 ..
-rwxr-xr-x   1 root  wheel    15M Jul 16 15:52 go
-rwxr-xr-x   1 root  wheel   3.4M Jul 16 15:53 gofmt
我的go.mod也是:
module cmd

go 1.14

最佳答案

这意味着<PATH_TO>/cmd权限不可写或$GOPATH/pkg/cmd/go不可读。
你可以:

  • 使用User
  • 使用sudo chmod -R 777 <PATH_TO>/cmdgovendor(如果它不在go mod内)。
  • 尝试改为在GOPATH内部创建(您尚未声明$GOPATH是否在<PATH_TO>/cmd
  • 如果$GOPATH可写,请立即使用<PATH_TO>/cmd并通过sudo
  • 再次将所有权更改为<User>
    通过chown再次检查对<PATH_TO>/cmd$GOPATH/pkg/cmd/go的许可,它应该是可读写的。

    关于go - 去安装复制权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63098888/

    相关文章:

    Go:如何嵌入相同的界面两次?

    声明式 Jenkinsfile 中的 GOPATH

    go - 从包导入路径获取包源的完整路径

    for-loop - 在 for 循环中使用指针

    multithreading - 并发调用 `Wait()`的 `sync.Cond`方法,安全吗?

    go - 为什么 panic 不会发生?

    go - 基本类型的解引用接口(interface)

    git - 使用 git 设置正确的 Golang 目录结构以在自定义包上使用 go build

    go - GOPATH 和 GOROOT 的值应该是多少?

    go - Golang 1.8 glide vendor 文件夹忽略