ruby 1.9.2p320 rails 3.0.8 Fedora release 16 (Verne)
做过:
yum install imagemagick yum install ImageMagick-devel gem install RMagick 完全没有问题
我可以从独立的 Ruby 程序运行 RMagick,但是 Rails 中的 Ruby(使用相同的解释器)找不到 RMagick:
gremlin:eric car01 $ irb irb(main):001:0> 需要“RMagick” => 真 irb(main):002:0> Magick::Version =>“RMagick 2.13.1” irb(main):003:0> $".grep(/Magick/) => ["/usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.13.1/lib/RMagick2.so", "/usr/local/lib/ruby/gems/1.9.1/ gems/rmagick-2.13.1/lib/RMagick.rb"] irb(主):004:0> gremlin:eric cars01 $ 导轨控制台 加载开发环境(Rails 3.0.8) irb(main):001:0> 需要'rubygems' => 无 irb(main):002:0> 需要“RMagick” LoadError:没有要加载的文件——RMagick 来自 /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:239:in `require' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:239:in `block in require' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:225:in `block in load_dependency' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:596:in `new_constants_in' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:225:in `load_dependency' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:239:in `require' 来自 (irb):2 来自 /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.8/lib/rails/commands/console.rb:44:in `start' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.8/lib/rails/commands/console.rb:8:in `start' 来自 /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.8/lib/rails/commands.rb:23:in `<top (required)>' 来自脚本/rails:6:in `require' 来自脚本/rails:6:in `'
如果我将 RMagick 放在 Gemfile 中,无论有没有它的版本,bundle 都会说它在机器上找不到 gem。但它适用于其他宝石。
任何人都知道为什么 Ruby 可以在 Rails 之外加载 RMagick 但不能在其中加载?
同时,在加载之前在 $: 上推送 RMagick 路径的超酷解决方法可以工作。