如何通过“http://gems.rubyforge.org/似乎不是存储库”错误消息

问题828421问了类似的问题,但只收到一个真正的答案(更新rubygems),并且该尝试导致相同的错误。

Windows上的Ruby版本1.9.1.p243。 包含Gem,版本1.3.5。 从未安装任何gem; 从来没有为这个Ruby做任何特殊的配置。 Ruby本身和irb一样工作,“gem”运行但不能安装(也许还有其他操作)。

试过这个(从一本书):

gem安装rspec

明白啦:

错误: http : //gems.rubyforge.org/似乎不是一个存储库
错误:执行gem时…(Gem :: RemoteFetcher :: FetchError)SocketError:getaddrinfo:存储控制块被破坏。 ( http://gems.rubyforge.org/yaml )

当我使用MSIE7访问该URL(没有“yaml”)时,我得到一个标题为“Gemcutter | awesome gem hosting”的页面,并且没有任何问题在该网站上游荡。 所以我不认为 – 这是一个代理问题(虽然这都是来自企业防火墙/代理/等)。

当我转到那个URL -with-“yaml”时,它转到“ http://production.s3.rubygems.org/yaml ”并显示我认为是更新规范页面,从这开始:—!ruby/对象:gem:: SourceIndex

我没有销毁任何“存储控制块”。 那么什么阻止gem安装gem?

网络搜索显示很多人在很长一段时间内都遇到同样的问题,但是我还没有看到有人说“这是因为这个,所以要解决这个问题。” 好吧,有人建议更新“gem”,但尝试得到同样的错误。

请帮忙?

您的浏览器可能正在使用系统范围的代理设置或某种自动配置。 gem命令可能没有。 我是大学代理的后面,我无法正常安装/更新任何gem,但可以使用我的浏览器访问所有内容。 要安装gem,我通常会创建一个到我服务器的隧道,以便绕过代理服务器。

这可能有助于您配置gem命令的代理设置: 如何从代理(ISA-NTLM)后面更新Ruby Gems

样品:

 sudo gem install nifty-generators -p http://proxy:port 

它运作良好。

如果您的代理需要身份validation,请使用:

 gem install --http-proxy http://USERNAME:PASS@HOST:PORT gem_name 

这可能“有时”意味着由于某种原因,rubygems.org目前处于关闭状态,因此您的本地“隐形代理”将返回404或不返回。

@Tomas Markauskas并不适合我,因为我不在代理人之后。 我没有在任何地方找到解决方案,我尝试禁用我的AV和防火墙,没有

这是我的解决方案:

 gem install rails -r -w -p 

希望这能帮助有同样问题的人。

编辑:我有Windows 7 64位。