gep init失败的原因及解决方法

发布于 2018-01-07 作者 shen100 2209次 浏览 版块 分享

昨天尝试用gep来管理golang依赖包,在项目目录下输入gep init, 结果遇到以下问题

init failed: unable to solve the dependency graph: Solving failure: No versions of 
github.com/microcosm-cc/bluemonday met constraints:
master: unable to deduce repository and source type for "golang.org/x/net/html": 
unable to read metadata: unable to fetch raw metadata: failed HTTP request to 
URL "http://golang.org/x/net/html?go-get=1": 
Get http://golang.org/x/net/html?go-get=1: dial tcp 216.239.37.1:80: i/o timeout

推测是GFW导致的,那么就得科学上网了。

对于程序员来说,终端是每天必备的利器。可是shadowsocks即使配置全局代理,终端还是不管用。我们可以把 socks5 代理转换成 http 代理,然后使用 http_proxy 环境变量, 这样间接实现命令行使用socks5 代理。

这里默认已经启用了shadowsocks且本地代理为socks5://127.0.0.1:1080

这里我们使用polipo 来做代理转换器。

# 安装polipo
brew install polipo

为了方便我们使用它,可以在 ~/.bash_profile 里加一个 alias:

alias SET_SOCKS5_PROXY='polipo socksParentProxy=127.0.0.1:1080 proxyAddress=0.0.0.0'

先开一个命令行窗口,执行一下 SET_SOCKS5_PROXY 开启一个代理转换器。可以看到 polipo 监听了 8123 端口。

之后,在需要代理的程序前面加上 http_proxy=http://127.0.0.1:8123 https_proxy=http://127.0.0.1:8123 就可以让程序使用代理了。

另外,为了更加方便,我们可以再搞一个 alise:

alias SET_HTTP_HTTPS_PROXY='env http_proxy=http://127.0.0.1:8123 https_proxy=http://127.0.0.1:8123'

只需要每次在需要使用代理的命令前面加上 SET_HTTP_HTTPS_PROXY 就可以使用代理了。例如:

SET_HTTP_HTTPS_PROXY curl https://www.youtube.com

返回youtube的网页,那么就配置成功了, 然后再次运行gep init

再次强调下两个端口

端口 说明
1080 shadowsocks监听的端口
8123 polipo监听的端口
收藏
暂无回复