2010-12-22 73 views
6

上找到ImageMagick的我部署railsapp到Ubunturmagick不會在服務器

rmagick通過「捆綁安裝供應商」安裝。它安裝,以及應用程序運行 - 但這個錯誤被拋出:

uninitialized constant Image::Magick 

試圖讀取時:

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

我已經做了以下內容:

  • uninstsalled,然後重新安裝,服務器上的ImageMagick
  • 已卸載,然後重新安裝,rmagick在服務器上
  • 卸載,然後重新安裝,通過捆綁rmagick
  • 只rmagick安裝
  • 與rmagick安裝
  • 的nginx代理到Rails的服務器,以確保該錯誤的捆綁和系統運行的捆綁運行不涉及乘客

我要有點瘋狂試圖找出我還有什麼可以做,使rmagick看到的ImageMagick

+0

你能告訴我們這個錯誤的堆棧跟蹤嗎? – 2010-12-22 21:20:42

+0

謝謝你問瑞安。事實證明,最初部署應用程序的人沒有將其配置在Gemfile中,因爲它偏好/需要在許多環境中運行。 – 2011-01-07 01:07:47

回答

39

後的戰鬥,並在不同的組合重新編譯的ImageMagick和rmagick的時間,我走運了在1號線修復

的Gemfile

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

捆紮機需要默認情況下,寶石名稱,

:require => 'rmagick'

但是包含的文件實際上是'RMagick.rb'。對於不區分大小寫的文件系統(如OS X),這將起作用,但對於區分大小寫的文件系統(如Ubuntu),將不會找到該文件。

這可能是開發系統無法生成錯誤的原因之一,即使在生產模式下運行也是如此。

0

做一個gem install rmagick作爲一個特權用戶解決了我的問題。

不是一個真正有用的解決方案,但我想我的情況下,我實際上沒有正確安裝RMagick,即使捆綁軟件認爲我已經安裝了。