2010-06-17 34 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重定向到你自己的服務,你可以將任何你想要的東西注入到寶石中......

相關問題