问题描述
在本地搭建 jekyll 环境安装了 ruby
$ ruby -vruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]在更新的时候报错 已经翻墙了
$ gem update --systemERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)Errno::ECONNABORTED: An established connection was aborted by the software in your host machine. - SSL_connect (https://api.rubygems.org/specs.4.8.gz)安装 jekyll
$ gem install jekyllERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)Errno::ECONNABORTED: An established connection was aborted by the software in your host machine. - SSL_connect (https://api.rubygems.org/quick/Marshal.4.8/jekyll-2.5.3.gemspec.rz)
有大神可以指导一下 问题吗 ?
问题解答
回答1:FetchError 明显是连接错误,使用国内的镜像源即可
在用户主目录下,Linux 是 ~,Windows 是 C:UsersUSERNAME (也可能是 Administrator 或 ProgramData) 下面新建一个 .gemrc 文件,写入下面内容试试:
:sources:- https://ruby.taobao.org:update_sources: true回答2:
因为翻墙(用了HTTP代理),如果你用的是HTTP代理,HTTPs连接就会失败。因为HTTPS是带服务器验证的,而代理转发数据是要涉及 HTTP 层的数据,代理服务没有网站的私钥所以是无法解码HTTP头里面的数据的。(其实是一开始的认证没有通过)
解决方法是:1、给代理服务器添加证书(似乎不太安全,而且代理服务器也不一定有)2、用socket代理3、不要翻墙了,改用国内的源吧 gem source(这才是最靠谱的)