我正在尝试安装一些Ruby Gems,所以当我收到Twitter消息时,我可以使用Ruby通知我。但是,在执行gem update --system
之后,我现在每次尝试执行任何gem install
时都会收到zlib错误。下面是我在尝试安装ruby gem时获得的控制台输出。 (以及gem environment
的输出)。
C:\data\ruby>gem install twitter
ERROR: While executing gem ... (Zlib::BufError)
buffer error
C:\data\ruby>gem update --system
Updating RubyGems
ERROR: While executing gem ... (Zlib::BufError)
buffer error
C:\data\ruby>gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.2.0
- RUBY VERSION: 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
- INSTALLATION DIRECTORY: c:/ruby/lib/ruby/gems/1.8
- RUBY EXECUTABLE: c:/ruby/bin/ruby.exe
- EXECUTABLE DIRECTORY: c:/ruby/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-mswin32-60
- GEM PATHS:
- c:/ruby/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://gems.rubyforge.org/
答案 0 :(得分:5)
它与多个冲突的zlib版本有关(我认为)。
在ruby / lib / ruby / 1.8 / i386-msvcrt中,确保存在zlib.so文件。就我而言,它已经存在了。如果没有,您可以尝试安装ruby-zlib。
然后转到ruby / lib / ruby / site_ruby / 1.8 ./i386-msvcrt并删除那里的zlib.so文件。
在ruby / bin中,应该有一个zlib1.dll。出于某种原因,我的Ruby版本没有使用这个dll。我下载了最新版本(1.2.3)并在那里安装了它。我不得不将它重命名为zlib.dll才能使用它。
tada! Rubygems再次工作。
希望这有帮助。
答案 1 :(得分:4)
答案 2 :(得分:3)
我今晚也开始接受这个。谷歌搜索出现了一堆没有提供结果的建议
gem update --system
还有一些来自jamis的代码粘贴,它应该替换package.rb中的一个函数,但原来应该替换它是无处可寻的。
重新安装rubygems并没有帮助。我现在正在重新安装红宝石.........并且它已修复。虽然很痛苦。
答案 3 :(得分:1)
重新安装Ruby已将此问题排除在外。这不是我想要的;我想知道为什么我会遇到这个问题,但这一切都已经解决了。
答案 4 :(得分:1)
它通常会在您的下载失败时显示 - 即由于网络超时,手动下载错误等原因导致您的宝石损坏。只需重试,或手动下载宝石并在文件中指向gem
。
答案 5 :(得分:1)
如果gem update --system
不起作用,将ruby/bin/zlib1.dll
重命名为zlib.dll
无助于尝试:
打开文件RUBY_DIR\lib\ruby\site_ruby\1.8\rubygems.rb
用此替换现有的def self.gunzip(data)
:
def self.gunzip(data)
require 'stringio'
require 'zlib'
data = StringIO.new data
# Zlib::GzipReader.new(data).read
data.read(10) # skip the gzip header
zis = Zlib::Inflate.new(-Zlib::MAX_WBITS)
is = StringIO.new(zis.inflate(data.read))
end
答案 6 :(得分:1)
如何cd进入rubysrc / ext / zlib,然后是ruby extendconf.rb
,然后是make
,make install
。
完成后,重新安装ruby。
我在ubuntu 10.04上做了这个并且成功了。
答案 7 :(得分:0)
在您执行任何其他操作之前,请尝试更新ZLib。我在OS X上遇到了类似的问题并且更新了Compress::Zlib(一个到ZLib的Perl接口)来治愈它 - 所以我认为ZLib的旧版本(现在是1.2.3)可能就是你的问题所在...
答案 8 :(得分:0)
安装纯ruby zlib