不是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.rbruby_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中….