安装 go mockgen 时权限被拒绝

Permission denied when installing go mockgen

我正在尝试安装 mockgen 包,但我一直收到拒绝的权限,但不知道为什么:

go install github.com/golang/mock/mockgen@v1.6.0

输出:

go install github.com/golang/mock/mockgen: copying /tmp/go-build3889221292/b001/exe/a.out: open /home/nocnoc/go/bin/mockgen: permission denied

我曾尝试使用 sudo 或以 root 身份执行它,但我收到此错误

sudo: go: command not found

我的 GOROOT 是 /usr/local/go 并且 GOPATH 在我的主目录中。 GO1111MODULE 也开启了。

我该如何解决?其他一切似乎 运行 都很好,只有 mockgen 似乎无法安装。

我不是 Linux 专家,但试试 运行:

sudo su
go install github.com/golang/mock/mockgen@v1.6.0

问题是目录 ~/go~/go/bin 的权限和所有者。通过使用 chown 命令将这两个目录的所有者从 root 更改为我的用户来解决:

drwxr-xr-x 10 root   root       4096 Aug 11  2020  go

drwxrwxr-x 10 nocnoc nocnoc     4096 Aug 11  2020  go

~/go/bin的权限和属主与上述目录相同