ruby-on-rails - rmagick 不会在服务器上找到 imagemagick

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

我正在将 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
  • 卸载,然后重新安装,通过 bundler rmagick
  • 仅在安装了 bundler rmagick 的情况下运行
  • 在安装了 bundler 和系统 rmagick 的情况下运行
  • 将 nginx 代理到 rails-server 以确保错误与 passenger 无关

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

最佳答案

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

gem 文件

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

Bundler 默认需要 gem 名称,

:require => 'rmagick'

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

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

关于ruby-on-rails - rmagick 不会在服务器上找到 imagemagick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4513684/

相关文章:

ruby-on-rails - Rails 3 中的 config.logger 和 config.paths.log

ruby - 访问 ruby 矩阵

css - 为什么期望 1px 粗体为背景颜色?

ruby-on-rails - 是否有任何用于 Rails 的安全测试插件?

linux - ubuntu Linux 中 ejabberd 的 AWS 自定义 TCP 端口访问?

ruby-on-rails - Actionmail Net::SMTPServerBusy - 发件人地址被拒绝:找不到域

ruby-on-rails - 为什么 Heroku 不接受我在 Windows 中的 Gemfile.lock?

ruby-on-rails - Ohm,从 ids 数组中查找所有记录

bash - 菜单不想使用功能

c++ - 使用 QFileDialog 在 Ubuntu 上仅显示目录和可执行文件