【问题标题】:rmagick won't find imagemagick on the serverrmagick 在服务器上找不到 imagemagick
【发布时间】:2011-05-29 15:49:56
【问题描述】:

我正在将 railsapp 部署到 ubuntu

rmagick 是通过“bundle install vendor”安装的。它安装了,应用程序运行了——但是这个错误被抛出:

uninitialized constant Image::Magick

尝试阅读时:

source_image = Magick::Image.read("#{Rails.root}/public/system/assets/#{self.id}/original/#{self.asset_file_name}").first

我做了以下事情:

  • 在服务器上卸载然后重新安装 ImageMagick
  • 卸载,然后重新安装,rmagick 在服务器上
  • 卸载,然后重新安装,rmagick via bundler
  • 仅在安装了 bundler rmagick 的情况下运行
  • 在安装了 bundler 和系统 rmagick 的情况下运行
  • 将 nginx 代理到 rails-server 以确保错误与乘客无关

我有点疯狂地想弄清楚我还能做些什么来让 rmagick 看到 imagemagick

【问题讨论】:

  • 你能告诉我们这个错误的堆栈跟踪吗?
  • 感谢瑞恩的提问。事实证明,最初部署该应用程序的人并没有在 Gemfile 中配置它,因为它喜欢/需要在许多环境中运行。

标签: ruby-on-rails ubuntu ruby-on-rails-3 rmagick


【解决方案1】:

经过数小时的斗争和重新编译不同组合下的 imagemagick 和 rmagick,我幸运地修复了 1 行

宝石文件

- gem 'rmagick'
+ gem 'rmagick', :require => 'RMagick'

Bundler 默认需要 gem 名称,

:require => 'rmagick'

但包含的文件实际上是“RMagick.rb”。对于不区分大小写的文件系统,例如 OS X,这将起作用,但对于 区分大小写 的文件系统,例如 Ubuntu,将找不到该文件。

这可能是无法在开发系统上产生错误的原因之一,即使在生产模式下运行也是如此。

【讨论】:

  • 在感恩节发现了这个有用的小提示。谢谢。
  • 很好的解决方案。感谢您的解释。 OSX 不区分大小写有时让我抓狂..
【解决方案2】:

以特权用户身份执行gem install rmagick 为我解决了这个问题。

这不是一个真正有用的解决方案,但我想我实际上并没有正确安装 RMagick,尽管 bundler 认为我这样做了。

【讨论】:

    猜你喜欢
    • 2011-04-23
    • 2017-05-29
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多