-2

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

在此处输入图像描述

由于看起来权限错误不在我的项目中,而是在我的 go install 路径中,所以我不确定是否应该更改此类文件的所有权。

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
4

1 回答 1

0

这意味着<PATH_TO>/cmd对于$GOPATH/pkg/cmd/go您的User.

您可以:

  1. 利用sudo chmod -R 777 <PATH_TO>/cmd
  2. 使用govendororgo mod如果它在GOPATH.
  3. 尝试在里面创建$GOPATH(你没有说明如果<PATH_TO>/cmd在里面$GOPATH
  4. 如果<PATH_TO>/cmd是可写的,则暂时使用sudo并重新将所有权更改<User>chown

<PATH_TO>/cmd通过或$GOPATH/pkg/cmd/go再次检查权限ls -lah <PATH_TO>/cmd,它应该是可读和可写的。

于 2020-07-26T14:40:00.253 回答