6

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
  • bundler rmagick のみをインストールして実行する
  • バンドラーとシステム rmagick をインストールして実行する
  • nginx を rails-server にプロキシして、エラーがパッセンジャーに関連していないことを確認しました

rmagickにimagemagickを表示させるために他に何ができるかを理解しようとして、少し夢中になっています

4

2 に答える 2

39

さまざまな組み合わせでimagemagickとrmagickを何時間も戦い、再コンパイルした後、私は1行の修正で運が良かった

Gemfile

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

Bundlerはデフォルトでgem名を必要としますが、

すなわち:require => 'rmagick'

ただし、含まれているファイルは実際には「RMagick.rb」です。OS Xのような大文字と小文字を区別しないファイルシステムの場合、これは機能しますが、Ubuntuのような大文字と小文字を区別するファイルシステムの場合、ファイルは見つかりません。

これは、本番モードで実行している場合でも、開発システムでエラーを生成できない理由の1つである可能性があります。

于 2010-12-30T19:17:32.043 に答える
0

特権gem install rmagickユーザーとして実行すると、問題が解決しました。

本当に役立つ解決策ではありませんが、私の場合、バンドラーがインストールしたと思っていたとしても、実際には RMagick が正しくインストールされていなかったと思います。

于 2014-01-16T16:27:30.220 に答える