2010-06-17 37 views
4

在安装任何宝石或做相关的错误宝石的gzip的任何上市之际,如下图所示: -不是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 

请帮我如何reslove这个

+0

[ERROR:执行gem时可能重复...(Zlib :: GzipFile :: Error)不在gzip格式](http://stackoverflow.com/questions/13684137/error-while-executing-gem-zlibgzipfileerror-not-in-gzip-format) – CharlesB 2013-02-02 13:46:30

回答

4

看起来像RubyGems的。 org(或您定义的任何宝石来源)已关闭。

+0

这是正确的。看看我的答案可能的原因。 – dcow 2012-09-14 03:37:56

1

确保您使用的是正确的宝石来源。

$ gem sources 

应显示http://rubygems.org/作为第一个来源。

如果缺少,请添加http://rubygems.org/作为主要来源。否则,这可能是RubyGems索引的一个临时问题。

另外请确保您使用的是最新的RubyGems(库)版本。

$ gem update --system 
+0

运行$宝石的来源后 输出 ***电流源*** http://gems.rubyforge.org/ http://gems.github.com 运行$宝石更新后 - 系统 输出将 ** REMOTE GEMS *** 错误:在执行宝石...(的Zlib :: GzipFile中::错误) 不是gzip格式 – Ravindra 2010-06-17 09:38:40

+0

清除使用'$宝石sources'现有的所有宝石的来源命令,然后添加'http:// ruby​​gems.org'作为第一个源。 'gems.rubyforge.org'是旧版网址。 – 2010-06-17 10:24:26

+0

根据你的建议,我已经做了以下修改,然后也同样的问题 C:\ Documents和Settings \ gangunra>宝石来源 ***电流源*** http://rubygems.org/ Ç :\ Documents and Settings \ gangunra> gem update --system 正在更新RubyGems 错误:执行gem时(Zlib :: GzipFile :: Error) 未使用gzip格式 – Ravindra 2010-06-17 11:28:39

0

找出你的红宝石被配置为查找来源:

C:\>gem sources 
*** CURRENT SOURCES *** 

http://gems.rubyforge.org/ 

如果指向gems.rubyforge.org(这是第一次安装时为老年人安装二进制文件),那么你'指向旧的Web服务器,所以当ruby尝试获取更新时,它将获得HTTP重定向(302)作为响应,而不是GZIP格式中的预期数据。它显然没有配置错误处理程序来检测重定向,所以它只是放弃。

要修复它,你必须更新源的列表。首先添加正确的源:

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. 
... 

注意更新验证旧的源地址是不更长的有效期...

您现在应该可以继续安装,在我的ca se被耙了。

1

不知道你的错误发生在tar_input.rbruby_core_source.rb

大多数人通过清理缓存文件解决了tar_input.rb错误。我解决了ruby_core_source.rb:57'initialize':不是gzip格式 这里是描述和解决方法:

问题是因为“有时”ftp服务器中的ruby源文件可能不是tar + gzip。所以有时候源文件是不正确的。

我刚刚浏览了源代码,并且代码需要ftp服务器中的.tar.gz文件(例如http ://ftp.ruby-lang.org/pub/ruby/1.9/xxx.tar.gz)。但是找到的文件只是tar文件,而不是gzip文件。

解决方法是修改您的gem目录中的代码。

我在找ppl谁知道为什么托管在ruby-lang.org中的文件没有正确gzip-ed。希望可以永远解决。

这是我发现的细节描写:

http://ru05team.blogspot.com/2011/08/solving-workaround-initialize-not-in.html 

这里是你必须改变的解决方法,源代码:使用网络时

https://gist.github.com/1183048 
0

我就遇到了这个问题需要阶段2认证。我忘记了在浏览器中进行身份验证,因此任何Web请求都被重定向到本地身份验证页面。看起来gem不检查它收到的响应是否实际上来自实际的rubygems.org服务器(除非您使用了ssl证书,否则它不能单独基于地址查找)。而不是告诉你它不能到达真正的rubygems服务器,它只是告诉你它收到的有效负载的格式不正确(压缩)。假设你运行一个恶意的DNS服务器,将rubygems.org重定向到你自己的服务,你可以将任何你想要的东西注入到宝石中......

相关问题