我在Windows系统上安装了RMagick而没有明显的问题,但我实际上在使用它时遇到了问题。特别是:
C:\Users\dancrumb> ruby -rubygems -rRMagick -e "puts Magick::Long_version"
C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems.rb:900:in `report_activate_error':
RubyGem version error: rmagick(2.12.0 not >= 0) (Gem::LoadError)
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems.rb:248:in `activate'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems.rb:212:in `rescue in try_activate'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems.rb:209:in `try_activate'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:57:in `rescue in require'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
主要粘贴块是看似不合逻辑的错误消息:RubyGem version error: rmagick(2.12.0 not >= 0)
。除非我遗漏了什么,否则2.12.0肯定大于0。
一些有用的信息:
C:\Users\dancrumb>gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.6.2
- RUBY VERSION: 1.9.2 (2010-12-25 patchlevel 136) [i386-mingw32]
- INSTALLATION DIRECTORY: C:/Ruby192/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: C:/Ruby192/bin/ruby.exe
- EXECUTABLE DIRECTORY: C:/Ruby192/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-mingw32
- GEM PATHS:
- C:/Ruby192/lib/ruby/gems/1.9.1
- C:/Users/dancrumb/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
C:\Users\dancrumb>dir \Ruby192\lib\ruby\gems\1.9.1\gems
Volume in drive C is TI106036W0F
Volume Serial Number is 4432-A499
Directory of C:\Ruby192\lib\ruby\gems\1.9.1\gems
...
03/26/2011 01:34 PM <DIR> rmagick-2.12.0-x86-mswin32
...
03/20/2011 08:06 PM <DIR> rubygems-update-1.6.2
...
提供的README文件和与RMagick相关的论坛无法提供任何见解。
它变得更奇怪了:
C:\Users\dancrumb>ruby -rubygems -e "gem 'rmagick', '2.12.0'; puts Magick::Long_
version"
C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems.rb:900:in `report_activate_error':
RubyGem version error: rmagick(2.12.0 not = 2.12.0) (Gem::LoadError)
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems.rb:248:in `activate'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems.rb:1276:in `gem'
from -e:1:in `<main>'
除了关于RMagick的具体问题,任何人都可以向我提供对版本错误的合理解释......这对我来说似乎很难解决,但也许它实际上传达了一些有用的东西......只是以坚果的方式。
答案 0 :(得分:6)
我在Ruby 1.8.7中遇到了和1.9.1一样的问题。这是我解决它的一种方式:
答案 1 :(得分:2)
输入以下内容:
ruby --version
如果其输出类似于
ruby 1.9.2p180 (2011-02-18) [i386-mingw32]
这意味着Ruby是使用mingw32构建的,RMagick不支持。
虽然RMagick-2.12.0-ImageMagick-6.5.6-8-Q8包的README.html说
Ruby 1.8.6,通过One-Click安装程序安装。
在先决条件中,the latest One-Click Installer是使用mingw32构建的,这会导致问题。
答案 2 :(得分:1)
查看rubygems的源代码,看起来rmagick可能因为某些原因错误地回应了rubygems对其版本的查询;不确定是什么。
如果您未提供特定版本号,则rubygems将以>= 0
为version_requirements
。
请尝试使用此更明确的版本,因此版本完全匹配:
ruby -rubygems -e "gem 'rmagick', '2.12.0'; puts Magick::Long_version"