解决 VS Code 中 golang.org 被墙导致的 Go 插件安装失败问题
微软官方开发的 Go for Visual Studio Code 插件为 Go 语言 提供了丰富的支持。在 VS Code 中首次打开 Go 工作区后,VS Code 会自动检测当前开发环境为 Go 并推荐安装上述插件。
然而 Go 插件的安装并不顺利:输出窗口的安装信息提示其中一些依赖工具安装失败:
Installing github.com/mdempsky/gocode 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/stamblerre/gocode FAILED
Installing github.com/ianthehat/godef FAILED
Installing github.com/sqs/goreturns FAILED
Installing golang.org/x/lint/golint FAILED
9 tools failed to install.
手动使用go get -v github.com/mdempsky/gocode
等命令同样提示网络连接失败。
失败原因
原因其实很简单:golang.org 在国内由于一些众所周知的原因无法直接访问,而go get
在获取gocode
、go-def
、golint
等插件依赖工具的源码时,需要从 golang.org 上拉取部分代码至GOPATH
,自然就导致了最后这些依赖于 golang.org 代码的依赖工具安装失败。
解决办法
解决也并不复杂:先通过git clone
命令手动将依赖工具的源码拉取至GOPATH
的对应路径,再通过go install
命令安装依赖工具。
以 Windows 为例,首先进入%GOPATH%\src\
目录,并创建golang.org\x
。
之后进入%GOPATH%\src\golang.org\x
,使用下列命令下载插件依赖工具的源码:
git clone https://github.com/golang/tools.git tools
git clone
命令执行完毕后,所需的工具源码就都保存在tools
目录中。
最后进入%GOPATH%
目录,根据之前的安装失败提示信息安装对应的依赖工具:
go install github.com/mdempsky/gocode
go install github.com/ramya-rao-a/go-outline
go install github.com/acroca/go-symbols
go install golang.org/x/tools/cmd/guru
go install golang.org/x/tools/cmd/gorename
go install github.com/stamblerre/gocode
go install github.com/ianthehat/godef
go install github.com/sqs/goreturns
go install golang.org/x/lint/golint
安装 golint
在执行go install
命令安装 golint 时,提示信息如下:
PS C:\Users\abel1\go> go install golang.org/x/lint/golint
can't load package: package golang.org/x/lint/golint: cannot find package "golang.org/x/lint/golint" in any of:
C:\Go\src\golang.org\x\lint\golint (from $GOROOT)
C:\Users\abel1\go\src\golang.org\x\lint\golint (from $GOPATH)
这是因为 golint 的源码在lint
下,而不是tools
,需要单独拉取 golint 源码。
进入%GOPATH%\src\golang.org\x
,执行下列命令拉取 golint 源码:
git clone https://github.com/golang/lint
最后回到%GOPATH%
,通过go install
安装 golint:
go install github.com/golang/x/lint/golint
重启 VS Code 后,插件就可以正常使用了。Let's go for Go!
参考文章
作者:苏易北
链接:https://www.jianshu.com/p/37f1d9265fd0
来源:简书
解决 VS Code 中 golang.org 被墙导致的 Go 插件安装失败问题的更多相关文章
- 解决vs code中golang插件依赖安装失败问题
解决vs code中golang插件依赖安装失败问题 Installing github.com/nsf/gocode SUCCEEDED Installing github.com/uudashr/ ...
- Sublime Text 无法使用Package Control或插件安装失败的解决方法
Sublime Text用了一年多了,公司搬家近期突然发现Package Control无法安装新插件了.尽管不影响原有功能的使用.还是要解决它.因为本人用Windows系统,仅仅讨论Windosw下 ...
- 360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法
360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法 同事办公室的打印机是网线接口的那种网络打印机,不是直接连到电脑的那种,他电脑安装了360和金山毒霸,WIN10下安 ...
- Eclipse设置:背景与字体大小、xml文件中字体大小调整和自动提示 SVN插件安装
Eclipse中代码编辑背景颜色修改: 代码编辑界面默认颜色为白色.对于长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以改变workspace的背景色,可以使眼睛舒服一些.设置方法如下: 1.打开 ...
- 彻底解决go get golang.org/x等包失败与VSCode golang插件安装失败问题
由于某种众所周知的一些原因,https://golang.org/ golang 的官方域名是被墙了的,这也就导致了, 在广大 go 开发者使用 golang 的时候,总会出现 go get 失败的问 ...
- 解决CentOS 7中php-fpm进程数过多导致服务器内存资源消耗较大的问题
本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=653 什么是php-fpm: php-fpm即FastCGI进程管理器,用于控制php的内存和进程等. 操作环境: ...
- 解决 hybird 应用中重复获取 WebView,导致页面元素无法识别的问题
转载地址:http://blog.csdn.net/testman930/article/details/50799532 问题描述 在测APP的业务流,WebView和Native模式耦合在一起.例 ...
- 解决 DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe 在VS2015 Update3 安装失败的问题
今天抽空升级VS2015 Update3. 在安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe 时报错了,看了错误日志 显示: 看到我标红的两个地方,那么 ...
- atom插件安装失败解决方法
在atom 上下载插件失败,可以用下面的方法. 1.找到C:/Users/你的用户名/.atom/packages/文件夹内 2.在.atom packages 目录下 使用gitbash 3.git ...
随机推荐
- H3C配置Trunk端口
- 基于ubuntu16的mqtt服务器(apache-apollo1.7.1)
感谢博客:https://www.cnblogs.com/chenrunlin/p/5109028.html 需要环境: java1.8 把文件通过finalshell扔到/usr/local目录下 ...
- addEventListener() 方法,事件监听(去哪儿网用到过)
addEventListener() 方法,事件监听 你可以使用 removeEventListener() 方法来移除事件的监听. 语法 element.addEventListener(event ...
- vue-learning:31 - component - 组件间通信的6种方法
vue组件间通信的6种方法 父子组件通信 prop / $emit 嵌套组件 $attrs / $liteners 后代组件通信 provide / inject 组件实例引用 $root / $pa ...
- 基于bmob后端云小程序开发——口袋吉他
人的一生90%的时间都在做着无聊的事情,社会的发展使得我们的闲暇时间越来越多,我们把除了工作的其他时间放在各种娱乐活动上. 程序员有点特殊,他们把敲代码看成娱乐活动的一部分,以此打发时间的不占少数.这 ...
- C#面试题整理(不带答案)
1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 2.什么是事务?什么是锁? 3.什么是索引,有什么优点? 4.视图是什么?游标是什么? 5.什么是存储过程?有什么优 ...
- codeforces 86D,Powerful array 莫队
传送门:https://codeforces.com/contest/86/problem/D 题意: 给你n个数,m次询问,每次询问问你在区间l,r内每个数字出现的次数的平方于当前这个数的乘积的和 ...
- 22.json&pickle&shelve
转载:https://www.cnblogs.com/yuanchenqi/article/5732581.html json 之前我们学习过用eval内置方法可以将一个字符串转成python对象,不 ...
- shelve模块、re模块
在模糊匹配时使用 1
- vue(axios)封装,content-type由application/json转换为application/x-www-form-urlencoded
现在主流的http请求头的content-type有三种(不讨论xml): application/x-www-form-urlencoded 最常见的提交数据方式,与原生form表单数据一致,在c ...