VSCODE 未能在 go 模块中安装工具

VSCODE faill to install tools in go module

在 VSCode 上启动 go 模块时,系统提示我安装一些工具

选择安装安装失败,在vscode终端的日志下方

VSCODE 一直对我大喊“安装失败”的东西,只是因为忽略了我的路径 如下所示

Tools environment: GOPATH=/home/go
Installing 1 tool at /home/go/bin in module mode.
  gopls

Installing golang.org/x/tools/gopls FAILED

1 tools failed to install.

gopls: failed to install gopls(golang.org/x/tools/gopls): Error: Command failed: /usr/local/go/bin/go get -v golang.org/x/tools/gopls
go: writing stat cache: mkdir /home/go: permission denied
go: downloading golang.org/x/tools/gopls v0.5.1
go: downloading golang.org/x/tools v0.0.0-20201017001424-6003fad69a88
go get golang.org/x/tools/gopls: mkdir /home/go: permission denied
 undefined  

这些是我的 GOPATHGOROOT

# GOLANG
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH
export PATH=$GOROOT/bin:$PATH

这是我的 vscode settings.json

{
    "[dart]": {
        "editor.formatOnSave": true,
        "editor.formatOnType": true,
        "editor.rulers": [
            80
        ],
        "editor.selectionHighlight": false,
        "editor.suggest.snippetsPreventQuickSuggestions": false,
        "editor.suggestSelection": "first",
        "editor.tabCompletion": "onlySnippets",
        "editor.wordBasedSuggestions": false
    },
    "workbench.iconTheme": "material-icon-theme",
    "workbench.colorTheme": "One Dark Pro",
    "dart.sdkPath": "/home/francesco/development/dart",
    "dart.openDevTools": "flutter",
    "go.formatTool": "goimports",
    "dart.checkForSdkUpdates": false,
    "go.useLanguageServer": true,
    "go.inferGopath": false,
    "go.gopath": "/home/go",
    "go.goroot": "/usr/local/go"
}

我应该采取什么措施来修复错误?

你的错误是:

go: writing stat cache: mkdir /home/go: permission denied

Go 尝试写入 /home/go。此文件夹源自:

export GOPATH=$HOME/go

看来您的 $HOME 没有指向您的个人文件夹。 GOPATH 应该指向一个你有写权限的文件夹,因为模块缓存位于 GOPATH 下。所以它应该指向你的用户家下的一个文件夹,例如/home/francesco/go.

我最近在我的 Windows 机器上解决了这个问题。一开始以为是文件权限问题。但是是GOPATH环境变量的问题。

我将其设置为 2 个值:C:\Program Files\Go(这是我安装 Go 的位置)和 C:.... 这是我希望我所有的 Go 项目都去的地方。

所以我删除了第一个条目。只需让 GOPATH 指向我的硬盘驱动器上我想要所有项目的位置,嘿,转眼间,问题消失了,所有工具都正确安装了。

这可能是因为以前版本的 Go 没有被完全删除。