Rmagick阻止Rails服务器正常工作

7

我需要使用rmagick,但它不允许我启动rails服务器。我在这里和Google上阅读了很多文章,但没有一个解决方法对我有帮助。似乎库出现了问题,我不确定如何解决。

如果有人有关于解决这个问题的确切建议,将不胜感激。

/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/rmagick-2.13.2/lib/rmagick.rb:11:in `require': dlopen(/Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/rmagick-2.13.2/lib/RMagick2.bundle, 9): Library not loaded: /usr/local/lib/libltdl.7.dylib (LoadError)
  Referenced from: /usr/local/lib/libMagickCore-Q16.7.dylib
  Reason: image not found - /Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/rmagick-2.13.2/lib/RMagick2.bundle
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/rmagick-2.13.2/lib/rmagick.rb:11:in `<top (required)>'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.0/lib/bundler/runtime.rb:72:in `require'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.0/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.0/lib/bundler/runtime.rb:70:in `each'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.0/lib/bundler/runtime.rb:70:in `block in require'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.0/lib/bundler/runtime.rb:59:in `each'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.0/lib/bundler/runtime.rb:59:in `require'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0@global/gems/bundler-1.3.0/lib/bundler.rb:132:in `require'
    from /Users/lexi87/dating/config/application.rb:7:in `<top (required)>'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/railties-3.2.12/lib/rails/commands.rb:53:in `require'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/railties-3.2.12/lib/rails/commands.rb:53:in `block in <top (required)>'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/railties-3.2.12/lib/rails/commands.rb:50:in `tap'
    from /Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/railties-3.2.12/lib/rails/commands.rb:50:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
4个回答

12
我能够解决这个错误,所以如果其他人遇到完全相同的问题,这个方法也会对他们有用。
以下是修复步骤:
brew uninstall imagemagick
gem uninstall rmagick
sudo gem install json # (not sure this step is needed)
sudo apt-get install libmagick9-dev
bundle install

然后它就完美地运行了。现在我可以启动Rails服务器,不再收到任何错误。希望这能帮助到某些人!


3
你不需要卸载 imagemagick,只需重新安装 rmagick 就可以了。这样做应该就可以解决问题了。 - Joshua Pinter
9
等一下,你先用了 brew 然后又用了 apt-get ... 这个命令是针对哪个操作系统的?! - benburton
1
我曾经遇到过同样的问题。我的解决方法是运行以下命令:brew uninstall imagemagick; brew install imagemagick; gem uninstall rmagick; bundle install。 - Martin Streicher
我不会以超级用户身份运行 gem install。这可能导致非常烦人的设置。 - schmijos

8

您只需要使用当前版本的ImageMagick重新安装rmagick即可。

gem install rmagick

在其他一些问题中,我发现以下方法可以解决问题:

gem pristine rmagick

我已经尝试过了,但它仍然显示相同的错误。对于 gem install rmagick 我还遇到了一些“无法将“\xCF”从 ASCII-8BIT 转换为 UTF-8”的错误提示。 - pwz2000
第二个呢?否则就卸载rmagick宝石并重新安装,然后再试一下。因为这解决了我的问题。 - Learner
一样的。它可以正常执行原始操作。只是仍然在rails服务器上提供错误。 - pwz2000
同样的错误在原始帖子中发布。引用自:/usr/local/lib/libMagickCore-Q16.7.dylib 原因:找不到图像 - /Users/lexi87/.rvm/gems/ruby-2.0.0-p0/gems/rmagick-2.13.2/lib/RMagick2.bundle - pwz2000
你运行了bundle install吗? - Learner

3
我安装时遇到了几个问题,对我有效的方法如下:
brew uninstall imagemagick
gem uninstall rmagick
brew install imagemagick
bundle install
brew unlink libtool 
brew link libtool

如果没有第一个,我在尝试安装rmagick时会出现错误;如果没有最后两个,则启动rails服务器时会出现错误。


0

我也遇到了这个问题。我尝试了很多不同的技巧,但奇怪的是,这种奇怪的方法起作用了。前两个命令似乎没什么用,但考虑到我不知道它们是如何起作用的,我也把它们留在了代码里。

别问为什么,直接运行并拥抱 rmagick 吧!

brew install libtool --universal
brew link libtool
brew unlink libtool && brew link libtool
gem uninstall rmagick
gem install rmagick

1
请不要重复回答。您可以针对每个问题具体回答有所不同的部分,或将问题标记为重复,并只回答一次。 - Flexo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接