2012-07-09 67 views
4

红宝石1.9.2p320 轨3.0.8 Fedora发行16(凡尔纳)为什么我可以使用irb的RMagick而不使用rails控制台?

做的:

百胜安装ImageMagick的 百胜安装的ImageMagick-devel的 宝石都

,没有任何问题安装RMagick我可以从独立的Ruby程序运行RMagick,但Ruby in Rails(使用 相同的解释器)找不到RMagick:

 
gremlin:eric cars01 $ irb 
irb(main):001:0> require 'RMagick' 
=> true 
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(main):004:0> 
gremlin:eric cars01 $ rails console 
Loading development environment (Rails 3.0.8) 
irb(main):001:0> require 'rubygems' 
=> nil 
irb(main):002:0> require 'RMagick' 
LoadError: no such file to load -- RMagick 
    from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:239:in `require' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:239:in `block in require' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:225:in `block in load_dependency' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:596:in `new_constants_in' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:225:in `load_dependency' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.0.8/lib/active_support/dependencies.rb:239:in `require' 
    from (irb):2 
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.8/lib/rails/commands/console.rb:44:in `start' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.8/lib/rails/commands/console.rb:8:in `start' 
    from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.0.8/lib/rails/commands.rb:23:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `' 

如果我将RMagick放入Gemfile中,无论是否带有版本,捆绑软件都会说它 找不到机器上的宝石。但它适用于其他宝石。

任何人都有任何想法,为什么Ruby可以加载RMagick之外的Rails,但不是在它?

同时,在加载之前,将路径推送到$ RMagick的超酷解决方法工作正常。

+0

由于xdite在下面指出,这是因为'rails console'使用了不同的gem环境。尝试运行'bundle exec irb'进行更适合的比较。 – 2012-07-09 08:31:25

+1

当然。问题是我无法获得捆绑包来在供应商/缓存中创建RMagick gem。有什么建议么? – Eric 2012-07-09 17:32:53

回答

2

在你的Gemfile中加入这一行

gem "rmagick"

然后bundle install

+0

我试过了,但在这里发生了什么事: 精怪:ERIC cars01 $捆绑安装 正在获取宝石的元数据从http://rubygems.org/......... 找不到宝石“RMagick( > = 0)ruby'在这台机器上可用的宝石。 – Eric 2012-07-09 17:27:23

0

你的问题是你可能有2+红宝石,下面的检查:

  • 其中红宝石
  • 这irb
  • 这捆绑
  • 其中宝石

他们肯定是在不同的地方。你必须确保他们使用相同的环境。

+0

不,他们都在同一个目录中。我安装源红宝石,并没有这些程序是在道路上的其他地方 精怪:ericp〜$其中红宝石 在/ usr/local/bin目录/红宝石 精怪:ericp〜$其中IRB 在/ usr/local/bin目录/ IRB 精怪:ericp〜$其捆绑 在/ usr/local/bin目录/捆 精怪:ericp〜$其中宝石 在/ usr/local/bin目录/宝石 精怪:ericp〜$ – Eric 2012-07-10 13:16:19

+0

如何在这些注释格式字段? – Eric 2012-07-10 13:18:14

相关问题