微软官方开发的 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!

参考文章

  1. 解决 VS Code 中 golang.org 被墙导致的 Go 插件安装失败问题 | 苏易北
  2. 解决vscode中golang插件依赖安装失败问题 | 简书
  3. VSCode安装go语言开发环境,go插件问题解决 | CSDN

作者:苏易北
链接:https://www.jianshu.com/p/37f1d9265fd0
来源:简书

解决 VS Code 中 golang.org 被墙导致的 Go 插件安装失败问题的更多相关文章

  1. 解决vs code中golang插件依赖安装失败问题

    解决vs code中golang插件依赖安装失败问题 Installing github.com/nsf/gocode SUCCEEDED Installing github.com/uudashr/ ...

  2. Sublime Text 无法使用Package Control或插件安装失败的解决方法

    Sublime Text用了一年多了,公司搬家近期突然发现Package Control无法安装新插件了.尽管不影响原有功能的使用.还是要解决它.因为本人用Windows系统,仅仅讨论Windosw下 ...

  3. 360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法

    360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法     同事办公室的打印机是网线接口的那种网络打印机,不是直接连到电脑的那种,他电脑安装了360和金山毒霸,WIN10下安 ...

  4. Eclipse设置:背景与字体大小、xml文件中字体大小调整和自动提示 SVN插件安装

    Eclipse中代码编辑背景颜色修改: 代码编辑界面默认颜色为白色.对于长期使用电脑编程的人来说,白色很刺激我们的眼睛,所以改变workspace的背景色,可以使眼睛舒服一些.设置方法如下: 1.打开 ...

  5. 彻底解决go get golang.org/x等包失败与VSCode golang插件安装失败问题

    由于某种众所周知的一些原因,https://golang.org/ golang 的官方域名是被墙了的,这也就导致了, 在广大 go 开发者使用 golang 的时候,总会出现 go get 失败的问 ...

  6. 解决CentOS 7中php-fpm进程数过多导致服务器内存资源消耗较大的问题

    本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=653 什么是php-fpm: php-fpm即FastCGI进程管理器,用于控制php的内存和进程等. 操作环境: ...

  7. 解决 hybird 应用中重复获取 WebView,导致页面元素无法识别的问题

    转载地址:http://blog.csdn.net/testman930/article/details/50799532 问题描述 在测APP的业务流,WebView和Native模式耦合在一起.例 ...

  8. 解决 DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe 在VS2015 Update3 安装失败的问题

    今天抽空升级VS2015 Update3. 在安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe 时报错了,看了错误日志 显示: 看到我标红的两个地方,那么 ...

  9. atom插件安装失败解决方法

    在atom 上下载插件失败,可以用下面的方法. 1.找到C:/Users/你的用户名/.atom/packages/文件夹内 2.在.atom packages 目录下 使用gitbash 3.git ...

随机推荐

  1. P1094 百钱白鸡

    题目描述 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱. 输入格式 无. 输出格式 输出所有 ...

  2. linux 分配和释放设备编号

    在建立一个字符驱动时你的驱动需要做的第一件事是获取一个或多个设备编号来使用. 为 此目的的必要的函数是 register_chrdev_region, 在 <linux/fs.h>中声明: ...

  3. P1093 铺地毯

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 \(n\) 张地毯,编号从 \(1\) 到 \(n\) .现在将这些地毯按 ...

  4. Linux 内核即插即用规范

    一些新 ISA 设备板遵循特殊的设计规范并且需要一个特别的初始化顺序, 对增加接口板 的简单安装和配置的扩展. 这些板的设计规范称为即插即用, 由一个麻烦的规则集组成, 来建立和配置无跳线的 ISA ...

  5. CSS3 属性学习

    fill-available表示撑满可用空间(包括高度,宽度)[此处包括padding和margin会尽可能的撑满,只对于行内块(inline-block)和块元素(block)起作用,webkit内 ...

  6. 使用Squid做代理服务器,Squid单网卡透明代理配置详解(转)

    使用Squid做代理服务器 说到代理服务器,我们最先想到的可能是一些专门的代理服务器网站,某些情况下,通过它们能加快访问互联网的速度.其实,在需要访问外部的局域网中,我们自己就能设置代理,把访问次数较 ...

  7. CITRIX ADC配置SSL卸载

    如上图,将ssl的加密解密放在前端的负载均衡设备上,客户端到VPX的访问都是加密的,VPX到后端的服务器都是http的 Step1:上传证书到VPX,如下图: Step2:创建SSL的虚拟服务器并且绑 ...

  8. c++ list的坑

    std::list为空时调用pop_front的访问越界问题 std::list为空时调用pop_back访问越界问题 所以在使用pop_front . pop_back要先判断list是否为空 st ...

  9. HDU1251 统计难题[map的应用][Trie树]

    一.题意 给出一组单词,另给出一组单词用作查询,求解对于每个用于查询的单词,前一组中有多少个单词以其为前缀. 二.分析 根据题目很容易想到hash的方法,首先可以朴素的考虑将第一组中的所有单词的前缀利 ...

  10. Memcahced 缓存过期时间问题

    转载:https://help.aliyun.com/knowledge_detail/38654.html 关于设置缓存数据的过期时间,可以参考以下Memcached官方说明: An expirat ...