VS Code can't install the Go tools

14,778

Solution 1

It looks like it's complaining due to C:\Users\user\go\src\golang.org\x\tools being not a git repo, so it can't update whatever is in it.

Assuming you didn't put your own code in that dir, try removing it and then running again.

If you look at the docs for the Go plugin, and scroll all the way to the bottom, it shows the commands to run if you want to manually install/upgrade the stuff the plugin needs.

Specifically, taken from their github repo, you can just run this from a cmd.exe prompt.

go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/zmb3/gogetdoc
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v github.com/cweill/gotests/...
go get -u -v golang.org/x/tools/cmd/godoc
go get -u -v github.com/fatih/gomodifytags

Solution 2

Solution: Just Exit the app & Restart the application as Admin (Run as Administrator). It'll work fine & every module/dependency will be installed Successfully.

Share:
14,778
Hey
Author by

Hey

Updated on June 27, 2022

Comments

  • Hey
    Hey almost 2 years

    I try to start using Go in VSCode. I've installed Go as well as Git and created a project in Code, containing a single .go file.

    When I type something, VSCode warns me that tools like golint are missing and prompts me to install them. I click on "Install all".

    Then the console shows this :

    Installing 10 tools
      gocode
      gopkgs
      go-outline
      go-symbols
      guru
      gorename
      godef
      goreturns
      golint
      gotests
    
    Installing gocode SUCCEEDED
    Installing gopkgs SUCCEEDED
    Installing go-outline SUCCEEDED
    Installing go-symbols FAILED
    Installing guru FAILED
    Installing gorename FAILED
    Installing godef SUCCEEDED
    Installing goreturns FAILED
    Installing golint FAILED
    Installing gotests FAILED
    
    6 tools failed to install.
    
    go-symbols:
    Error: Command failed: C:\Go\bin\go.exe get -u -v github.com/newhook/go-symbols
    github.com/newhook/go-symbols (download)
    Fetching https://golang.org/x/tools/go/buildutil?go-get=1
    Parsing meta tags from https://golang.org/x/tools/go/buildutil?go-get=1 (status code 200)
    get "golang.org/x/tools/go/buildutil": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/buildutil?go-get=1
    get "golang.org/x/tools/go/buildutil": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/go/buildutil: exit status 128
    github.com/newhook/go-symbols (download)
    Fetching https://golang.org/x/tools/go/buildutil?go-get=1
    Parsing meta tags from https://golang.org/x/tools/go/buildutil?go-get=1 (status code 200)
    get "golang.org/x/tools/go/buildutil": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/buildutil?go-get=1
    get "golang.org/x/tools/go/buildutil": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/go/buildutil: exit status 128
    
    guru:
    Error: Command failed: C:\Go\bin\go.exe get -u -v golang.org/x/tools/cmd/guru
    Fetching https://golang.org/x/tools/cmd/guru?go-get=1
    Parsing meta tags from https://golang.org/x/tools/cmd/guru?go-get=1 (status code 200)
    get "golang.org/x/tools/cmd/guru": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/guru?go-get=1
    get "golang.org/x/tools/cmd/guru": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/cmd/guru: exit status 128
    Fetching https://golang.org/x/tools/cmd/guru?go-get=1
    Parsing meta tags from https://golang.org/x/tools/cmd/guru?go-get=1 (status code 200)
    get "golang.org/x/tools/cmd/guru": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/guru?go-get=1
    get "golang.org/x/tools/cmd/guru": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/cmd/guru: exit status 128
    
    gorename:
    Error: Command failed: C:\Go\bin\go.exe get -u -v golang.org/x/tools/cmd/gorename
    Fetching https://golang.org/x/tools/cmd/gorename?go-get=1
    Parsing meta tags from https://golang.org/x/tools/cmd/gorename?go-get=1 (status code 200)
    get "golang.org/x/tools/cmd/gorename": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/gorename?go-get=1
    get "golang.org/x/tools/cmd/gorename": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/cmd/gorename: exit status 128
    Fetching https://golang.org/x/tools/cmd/gorename?go-get=1
    Parsing meta tags from https://golang.org/x/tools/cmd/gorename?go-get=1 (status code 200)
    get "golang.org/x/tools/cmd/gorename": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/cmd/gorename?go-get=1
    get "golang.org/x/tools/cmd/gorename": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/cmd/gorename: exit status 128
    
    goreturns:
    Error: Command failed: C:\Go\bin\go.exe get -u -v sourcegraph.com/sqs/goreturns
    Fetching https://sourcegraph.com/sqs/goreturns?go-get=1
    Parsing meta tags from https://sourcegraph.com/sqs/goreturns?go-get=1 (status code 200)
    get "sourcegraph.com/sqs/goreturns": found meta tag main.metaImport{Prefix:"sourcegraph.com/sqs/goreturns", VCS:"git", RepoRoot:"https://github.com/sqs/goreturns"} at https://sourcegraph.com/sqs/goreturns?go-get=1
    sourcegraph.com/sqs/goreturns (download)
    github.com/sqs/goreturns (download)
    Fetching https://golang.org/x/tools/imports?go-get=1
    Parsing meta tags from https://golang.org/x/tools/imports?go-get=1 (status code 200)
    get "golang.org/x/tools/imports": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/imports?go-get=1
    get "golang.org/x/tools/imports": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/imports: exit status 128
    Fetching https://sourcegraph.com/sqs/goreturns?go-get=1
    Parsing meta tags from https://sourcegraph.com/sqs/goreturns?go-get=1 (status code 200)
    get "sourcegraph.com/sqs/goreturns": found meta tag main.metaImport{Prefix:"sourcegraph.com/sqs/goreturns", VCS:"git", RepoRoot:"https://github.com/sqs/goreturns"} at https://sourcegraph.com/sqs/goreturns?go-get=1
    sourcegraph.com/sqs/goreturns (download)
    github.com/sqs/goreturns (download)
    Fetching https://golang.org/x/tools/imports?go-get=1
    Parsing meta tags from https://golang.org/x/tools/imports?go-get=1 (status code 200)
    get "golang.org/x/tools/imports": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/imports?go-get=1
    get "golang.org/x/tools/imports": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/imports: exit status 128
    
    golint:
    Error: Command failed: C:\Go\bin\go.exe get -u -v github.com/golang/lint/golint
    github.com/golang/lint (download)
    Fetching https://golang.org/x/tools/go/gcexportdata?go-get=1
    Parsing meta tags from https://golang.org/x/tools/go/gcexportdata?go-get=1 (status code 200)
    get "golang.org/x/tools/go/gcexportdata": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/gcexportdata?go-get=1
    get "golang.org/x/tools/go/gcexportdata": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/go/gcexportdata: exit status 128
    github.com/golang/lint (download)
    Fetching https://golang.org/x/tools/go/gcexportdata?go-get=1
    Parsing meta tags from https://golang.org/x/tools/go/gcexportdata?go-get=1 (status code 200)
    get "golang.org/x/tools/go/gcexportdata": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/go/gcexportdata?go-get=1
    get "golang.org/x/tools/go/gcexportdata": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/go/gcexportdata: exit status 128
    
    gotests:
    Error: Command failed: C:\Go\bin\go.exe get -u -v github.com/cweill/gotests/...
    github.com/cweill/gotests (download)
    Fetching https://golang.org/x/tools/imports?go-get=1
    Parsing meta tags from https://golang.org/x/tools/imports?go-get=1 (status code 200)
    get "golang.org/x/tools/imports": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/imports?go-get=1
    get "golang.org/x/tools/imports": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/imports: exit status 128
    github.com/cweill/gotests (download)
    Fetching https://golang.org/x/tools/imports?go-get=1
    Parsing meta tags from https://golang.org/x/tools/imports?go-get=1 (status code 200)
    get "golang.org/x/tools/imports": found meta tag main.metaImport{Prefix:"golang.org/x/tools", VCS:"git", RepoRoot:"https://go.googlesource.com/tools"} at https://golang.org/x/tools/imports?go-get=1
    get "golang.org/x/tools/imports": verifying non-authoritative meta tag
    Fetching https://golang.org/x/tools?go-get=1
    Parsing meta tags from https://golang.org/x/tools?go-get=1 (status code 200)
    golang.org/x/tools (download)
    # cd C:\Users\user\go\src\golang.org\x\tools; git pull --ff-only
    fatal: Not a git repository (or any of the parent directories): .git
    package golang.org/x/tools/imports: exit status 128
    

    Some tools are able to install, others are not. I can't do anything about the Not a git repository error because it's an automated process and I'm not the one typing the git commands.

    I tried installing the tools separately in PowerShell and I get the same errors. My go directory is created (in %USERPROFILE%\go) and the GOPATH is set correctly.

    Any ideas ?