在VS代码中安装go pkg时会出现此错误。它试图在/User下创建缓存目录,这显然是只读的,我们应该更改它的权限。失败的pkgs-
在/User/ajayk/code/go/bin以模块模式安装10个工具。gopkgs go-outline gotests gomodifytags impl goplay dlv dlv-dap staticcheck gopls
Tools environment: GOPATH=/User/ajayk/code/go
Installing 10 tools at /User/ajayk/code/go/bin in module mode.
gopkgs
go-outline
gotests
gomodifytags
impl
goplay
dlv
dlv-dap
staticcheck
gopls
Installing github.com/uudashr/gopkgs/v2/cmd/gopkgs FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v github.com/uudashr/gopkgs/v2/cmd/gopkgs",
"stdout": "",
"stderr": "go: downloading github.com/uudashr/gopkgs v1.3.2\ngo: writing stat cache: mkdir /User: read-only file system\ngo: downloading github.com/uudashr/gopkgs/v2 v2.1.2\ngo get github.com/uudashr/gopkgs/v2/cmd/gopkgs: mkdir /User: read-only file system\n"
}
Installing github.com/ramya-rao-a/go-outline FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v github.com/ramya-rao-a/go-outline",
"stdout": "",
"stderr": "go: downloading github.com/ramya-rao-a/go-outline v0.0.0-20200117021646-2a048b4510eb\ngo get github.com/ramya-rao-a/go-outline: mkdir /User: read-only file system\n"
}
Installing github.com/cweill/gotests/gotests FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v github.com/cweill/gotests/gotests",
"stdout": "",
"stderr": "go: writing stat cache: mkdir /User: read-only file system\ngo: downloading github.com/cweill/gotests v1.6.0\ngo get github.com/cweill/gotests/gotests: mkdir /User: read-only file system\n"
}
Installing github.com/fatih/gomodifytags FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v github.com/fatih/gomodifytags",
"stdout": "",
"stderr": "go: writing stat cache: mkdir /User: read-only file system\ngo: downloading github.com/fatih/gomodifytags v1.13.0\ngo get github.com/fatih/gomodifytags: mkdir /User: read-only file system\n"
}
Installing github.com/josharian/impl FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v github.com/josharian/impl",
"stdout": "",
"stderr": "go: writing stat cache: mkdir /User: read-only file system\ngo: downloading github.com/josharian/impl v1.0.0\ngo get github.com/josharian/impl: mkdir /User: read-only file system\n"
}
Installing github.com/haya14busa/goplay/cmd/goplay FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v github.com/haya14busa/goplay/cmd/goplay",
"stdout": "",
"stderr": "go: writing stat cache: mkdir /User: read-only file system\ngo: downloading github.com/haya14busa/goplay v1.0.0\ngo get github.com/haya14busa/goplay/cmd/goplay: mkdir /User: read-only file system\n"
}
Installing github.com/go-delve/delve/cmd/dlv FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v github.com/go-delve/delve/cmd/dlv",
"stdout": "",
"stderr": "go: writing stat cache: mkdir /User: read-only file system\ngo: downloading github.com/go-delve/delve v1.6.1\ngo get github.com/go-delve/delve/cmd/dlv: mkdir /User: read-only file system\n"
}
Installing github.com/go-delve/delve/cmd/dlv@master FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v -d github.com/go-delve/delve/cmd/dlv@master",
"stdout": "",
"stderr": "go: writing stat cache: mkdir /User: read-only file system\ngo: writing stat cache: mkdir /User: read-only file system\ngo: downloading github.com/go-delve/delve v1.6.2-0.20210528182153-b2afb7cd209e\ngo get github.com/go-delve/delve/cmd/dlv@master: mkdir /User: read-only file system\n"
}
Installing honnef.co/go/tools/cmd/staticcheck FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v honnef.co/go/tools/cmd/staticcheck",
"stdout": "",
"stderr": "go: writing stat cache: mkdir /User: read-only file system\ngo: downloading honnef.co/go/tools v0.2.0\ngo get honnef.co/go/tools/cmd/staticcheck: mkdir /User: read-only file system\n"
}
Installing golang.org/x/tools/gopls FAILED
{
"killed": false,
"code": 1,
"signal": null,
"cmd": "/usr/local/go/bin/go get -v golang.org/x/tools/gopls",
"stdout": "",
"stderr": "go: writing stat cache: mkdir /User: read-only file system\ngo: writing stat cache: mkdir /User: read-only file system\ngo: downloading golang.org/x/tools v0.1.2\ngo: downloading golang.org/x/tools/gopls v0.6.11\ngo get golang.org/x/tools/gopls: mkdir /User: read-only file system\n"
}
10 tools failed to install.
2条答案
按热度按时间ny6fqffe1#
快速的解决方法是,从终端直接安装这些包到你的gopath中。一旦安装,在gopath中检查你的包。
cbjzeqam2#
问题出在您的
go
环境变量上。go get
和go install
命令会尝试在分别由GOPATH
和GOBIN
环境变量指定的路径上安装软件包。如果这些路径指定不正确(就像我自己的情况一样)或者根本不指定,go
会尝试将包安装到/User
目录,在大多数情况下,该目录没有write
权限。请按照此处的官方说明正确设置变量。安装目录由GOPATH和GOBIN环境变量控制。如果设置了GOBIN,二进制文件将安装到该目录。如果设置了GOPATH,二进制文件将安装到GOPATH列表中第一个目录的bin子目录。否则,二进制文件安装到默认GOPATH的bin子目录中($HOME/go或%USERPROFILE%\go)。您可以使用go env命令为将来的go命令设置环境变量的默认值:
$ go env -w GOBIN=/somewhere/else/bin$