需要使用Ruby的RMagick gem的问题

Dan*_*umb 3 ruby rubygems rmagick

我在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'
Run Code Online (Sandbox Code Playgroud)

主要的粘滞块是看似不合逻辑的错误消息: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
...
Run Code Online (Sandbox Code Playgroud)

提供的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>'
Run Code Online (Sandbox Code Playgroud)

除了关于RMagick的具体问题,任何人都可以向我提供对版本错误的合理解释......这对我来说似乎很难,但也许它实际上传达了一些有用的东西......只是以一种坚果的方式.

小智 6

我在Ruby 1.8.7中遇到了和1.9.1一样的问题.这是我解决它的方法:

  1. 如果你有的话,卸载rmagick gem(gem uninstall rmagick)
  2. 下载http://rubyforge.org/frs/download.php/64917/RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.zip
  3. 将zip解压缩到单独的文件夹(例如C:\ temp\rmagick)
  4. 安装ImageMagick-6.5.6-8-Q8-windows-dll.exe
  5. 将rmagick-2.12.0-x86-mswin32.gem解压缩到单独的文件夹(例如C:\ temp\rmagick\gem)
  6. 将data.tar.gz解压缩到单独的文件夹(例如C:\ temp\rmagick\gem\data)
  7. 打开rmagick.gemspec并删除s.platform ="mswin32"的行
  8. 使用"gem build rmagick.gemspec"再次构建gem(将生成"rmagick-2.12.0.gem")
  9. 使用"gem install rmagick --local"来安装它.