I'm running following command:
$ go get -u golang.org/x/tools/cmd/vet
package golang.org/x/tools/cmd/vet: cannot find package "golang.org/x/tools/cmd/vet" in any of: C:\Development\Software\go\src\golang.org\x\tools\cmd\vet (from $GOROOT)
C:\Development\Software\go\downloaded_packages\src\golang.org\x\tools\cmd\vet (from $GOPATH)
I can't really understand how cannot find package
makes sense with get
. It is supposed to get the package from internet. Why is it looking for it locally?
@JimB summed it up in the comments - you don't need to install go vet
separately.
But just for completeness, the direct answer to OP question is that the code for the go vet
command no longer lives at golang.org/x/tools/cmd/vet
(see https://golang.org/doc/go1.2#go_tools_godoc - and since that the code has moved to GitHub).
So when you run: go get -u golang.org/x/tools/cmd/vet
it appears that it is git cloning the golang.org/x/tools/cmd
package and then trying to compile golang.org/x/tools/cmd/vet
which is resulting in an error ("cannot find package...") because the "vet" part doesn't exist - it moved out a while ago. (go get
first downloads/clones the code and then attempts to compile the package on your local system.)
And all of that is to say, you probably already have go vet
- try typing "go vet -h" and if it works (you should see something like: "usage: vet ..."), you're set.