在vscode中使用golang时,经常会出现安装第三方工具的时候失败的问题,一般来说都是下载了golang.org/x/...
下面的包或者要下载的工具依赖于golang.org/x/...
的包所导致的,在国内是不会很顺利的下载和安装的。
Installing github.com/mdempsky/gocode FAILED
Installing github.com/uudashr/gopkgs/cmd/gopkgs FAILED
Installing github.com/ramya-rao-a/go-outline FAILED
Installing github.com/acroca/go-symbols FAILED
Installing golang.org/x/tools/cmd/guru FAILED
Installing golang.org/x/tools/cmd/gorename FAILED
Installing github.com/go-delve/delve/cmd/dlv FAILED
Installing github.com/rogpeppe/godef FAILED
Installing golang.org/x/tools/cmd/goimports FAILED
Installing golang.org/x/lint/golint FAILED
go get默认使用git来作为版本管理工具,如果对git设置了代理能否下载成功呢?
git config --global http.proxy 'http://127.0.0.1:8123'
git config --global https.proxy 'http://127.0.0.1:8123'
很遗憾,即使你对git设置了代理,也无法成功的下载安装golang.org
下的包,假如你要安装golang.org/x/tools/cmd/guru
这个包,当你使用go get去下载安装包时,首先会访问https://golang.org/x/tools/cmd/guru?go-get=1
这个url来获取版本库的类型,是git还是svn或者其他的版本管理工具,这个http请求是git之外的,所以这有对这个http请求设置了代理,然后对git设置代理,才能成功的下载安装该库。
# 在终端中执行
export https_proxy=http://127.0.0.1:8123
export http_proxy=http://127.0.0.1:8123
git config --global http.proxy 'http://127.0.0.1:8123'
git config --global https.proxy 'http://127.0.0.1:8123'
前提是你拥有一个http或者socks代理,如果没有的话,还是老老实实的在github.com/golang/...
上下载对应的包然后进行替换吧。
设置了代理之后,再次执行go get命令:
go get -v github.com/acroca/go-symbols
golang.org/x/tools/go/buildutil
# golang.org/x/tools/go/buildutil
Workbench/golang/src/golang.org/x/tools/go/buildutil/buildutil_go16.go:14:38: undefined: build.AllowVendor
这次又出错了,原因应该是golang.org/x/tools/go/buildutil
包太老了,直接更新相关的依赖包即可:
go get -v -u github.com/acroca/go-symbols
github.com/acroca/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 get.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)
package golang.org/x/tools/go/buildutil: golang.org/x/tools is a custom import path for https://go.googlesource.com/tools, but /home/lu/Workbench/golang/src/golang.org/x/tools is checked out from https://github.com/golang/tools
这次就成功更新并安装了,重启vscode,各项功能也正常了。
网友评论