问题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”,但尝试同样的错误。
请帮忙吗?
答案 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)
这是我的解决方案:
gem install rails -r -w -p
希望这能帮助有同样问题的人。
编辑:我有Windows 7 64位。