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

时间:2010-02-10 16:12:29

标签: ruby rubygems

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

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

试过这个(来自一本书):

  

gem install rspec

得到了这个:

  

错误:http://gems.rubyforge.org/   似乎不是一个存储库   错误:执行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 / object:Gem :: SourceIndex

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

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

请帮忙吗?

5 个答案:

答案 0 :(得分:15)

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

这可以帮助您配置gem命令的代理设置:How do I update Ruby Gems from behind a Proxy (ISA-NTLM)

答案 1 :(得分:5)

示例:

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

效果很好。

答案 2 :(得分:4)

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

这是我的解决方案:

gem install rails -r -w -p

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

编辑:我有Windows 7 64位。