去安装复制权限被拒绝

时间:2020-07-26 10:24:53

标签: 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"

这是我当前项目的目录:位于我的执行路径中: /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

1 个答案:

答案 0 :(得分:0)

这意味着您的<PATH_TO>/cmd的{​​{1}}权限不可写或$GOPATH/pkg/cmd/go不可读。

您可以:

  1. 使用User
  2. 使用sudo chmod -R 777 <PATH_TO>/cmdgovendor(如果它不在go mod之外)。
  3. 尝试在GOPATH内部创建(您尚未说明$GOPATH内是否<PATH_TO>/cmd
  4. 如果$GOPATH可写,请暂时使用<PATH_TO>/cmd,并由sudo再次将所有权更改为<User>

通过chown再次检查对<PATH_TO>/cmd$GOPATH/pkg/cmd/go的许可,它应该是可读写的。