下载 golang.org/x 包出错不用代理的解决办法

由于国内的网络环境导致在下载依赖 golang.org/x 下的包时一般会出错。
比如 :

https fetch failed: Get https://golang.org/x/tools/go/buildutil?go-get=1: dial tcp 216.239.37.1:443: i/o timeout

一般你可以通过设置代理,如果代理使用了 pac 模式的话,可能需要编辑下 pac 文件。下面要介绍的是一种不代理的解决办法。

原理

  1. 当我们使用 import "golang.org/x/tools/go/buildutil" 导入包时,其实导入的是$GOPATH/src/golang.org/x/tools/go/buildutil目录的包。

  2. “golang.org/x” 下的包在 “github.com/golang”有镜像库。

  3. 所以我们可以从 github.com 上将对应包下载下来放到对应的目录即可。

实例

比如先切换到 $GOPATH 的 src 目录,cd $GOPATH/src,然后按需要下载:

  1. git clone --depth 1 https://github.com/golang/tools.git golang.org/x/tools
  2. git clone --depth 1 https://github.com/golang/lint.git golang.org/x/lint
  3. git clone --depth 1 https://github.com/golang/net.git golang.org/x/net
  4. git clone --depth 1 https://github.com/golang/sys.git golang.org/x/sys
  5. git clone --depth 1 https://github.com/golang/crypto.git golang.org/x/crypto
  6. git clone --depth 1 https://github.com/golang/text.git golang.org/x/text
  7. git clone --depth 1 https://github.com/golang/image.git golang.org/x/image
  8. git clone --depth 1 https://github.com/golang/oauth2.git golang.org/x/oauth2
    原文作者:一半晴天
    原文地址: https://www.jianshu.com/p/6fe61053c8aa
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞