不是gzip格式错误
安装任何Gem或做任何gem gzip相关错误的列表如下所示: –
C:\Documents and Settings\gangunra>gem install rhosync -v 2.0.0.beta7 --pre ERROR: While executing gem ... (Zlib::GzipFile::Error) not in gzip format C:\Documents and Settings\gangunra>gem list rails -r *** REMOTE GEMS *** ERROR: While executing gem ... (Zlib::GzipFile::Error) not in gzip format
请帮我解决这个问题
看起来像rubygems.org(或您定义的任何gem源)已关闭。
不确定您的错误是否发生在tar_input.rb
或ruby_core_source.rb
。
大多数人通过清理缓存文件解决了tar_input.rb
错误。 我为ruby_core_source.rb解决了一个问题:57’初始化’:不是gzip格式,这里是描述和解决方法:
问题是因为“有时”ftp服务器中的ruby源文件可能不是tar + gzip。 所以有时源文件不正确。
我刚刚浏览了源代码,代码需要ftp服务器中的.tar.gz(例如http ://ftp.ruby-lang.org/pub/ruby/1.9/xxx.tar.gz
)。 但找到的文件只是tar,但不是gzip-ed。
解决方法是修改gem目录中的代码。
我正在寻找知道为什么ruby-lang.org
托管的文件没有正确gzip-ed的人。 希望能永远解决。
以下是我的发现的详细描述:
http://ru05team.blogspot.com/2011/08/solving-workaround-initialize-not-in.html
以下是您需要更改的变通方法源代码:
https://gist.github.com/1183048
确保使用正确的Gem源。
$ gem sources
应该显示http://rubygems.org/
作为第一个来源。
如果遗漏,请添加http://rubygems.org/
作为主要来源。 否则,它可能是RubyGems索引的临时问题。
还要确保您使用的是最新的RubyGems(库)版本。
$ gem update --system
找出ruby的配置位置以查找源:
C:\>gem sources *** CURRENT SOURCES *** http://gems.rubyforge.org/
如果它指向gems.rubyforge.org(它是为旧安装二进制文件首次安装时),则指向旧的Web服务器,因此当ruby尝试获取更新时,它会获得HTTP重定向(302)作为响应而不是GZIP格式的预期数据。 它显然没有配置error handling程序来检测重定向,所以它只是放弃了。
要修复它,您必须更新源列表。 首先添加正确的来源:
C:\>gem sources -a http://rubygems.org/ http://rubygems.org/ added to sources
然后删除已弃用的:
C:\>gem sources -r http://gems.rubyforge.org/ http://gems.rubyforge.org/ removed from sources C:\>gem sources *** CURRENT SOURCES *** http://rubygems.org/
接下来更新您的ruby系统:
C:\>gem update --system Updating RubyGems Updating rubygems-update Successfully installed rubygems-update-1.3.7 :0:Warning: Gem::SourceIndex#search support for String patterns is deprecated Updating RubyGems to 1.3.7 Installing RubyGems 1.3.7 RubyGems 1.3.7 installed === 1.3.7 / 2010-05-13 NOTE: http://rubygems.org is now the default source for downloading gems. You may have sources set via ~/.gemrc, so you should replace http://gems.rubyforge.org with http://rubygems.org http://gems.rubyforge.org will continue to work for the forseeable future. ...
请注意,更新会validation旧源URL是否不再有效…
您现在应该能够继续安装,在我的情况下是耙。
我在使用需要第2阶段身份validation的网络时遇到了这个问题。 我忘了在浏览器中进行身份validation,因此任何Web请求都被重定向到本地身份validation页面。 看起来gem
不会检查它收到的响应是否实际来自实际的rubygems.org服务器(除非你使用了ssl证书,否则它不能单独基于地址查找)。 它不是告诉你它无法到达真正的rubygems服务器,它只是告诉你它收到的有效载荷不是正确的格式(压缩)。 如果您运行恶意DNS服务器将rubygems.org重定向到您自己的服务,则可以推测,您可以将任何您想要的内容注入到gem中….