ImageMagick auf Ruby 1.9.3 Win32 mit rmagick 2.15.

Heute hatte ich ein Problem. Ein alten Projekt wollte ich aktualisieren, aber ich bekam folgende Fehlermeldung:

D:\Sources\Rails\project\rails s
d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rmagick-2.15.4/lib/rmagick_internal.rb:12:in `require': 
193: %1 ist keine zulässige Win32-Anwendung. - d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rmagick-2.15.4/lib/RMagick2.so (LoadError)
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rmagick-2.15.4/lib/rmagick_internal.rb:12:in `<top (required)>'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rmagick-2.15.4/lib/rmagick.rb:1:in `require'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rmagick-2.15.4/lib/rmagick.rb:1:in `<top (required)>'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `require'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `each'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `block in require'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `each'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `require'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/bundler-1.3.4/lib/bundler.rb:132:in `require'
from D:/Sources/Rails/pcount-mobile/config/application.rb:13:in `<top (required)>'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:53:in `require'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:53:in `block in <top (required)>'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:50:in `tap'
from d:/opt/Ruby/1.9.3/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

 

Leider brachte eine Suche im Internet keine Hilfe, aber es liegt Nahe, dass der Fehler mit ImageMagick zu tun hat. Daher eine kurze Bestandsaufnahme:

gem rmagick 2.15.4
ImageMagick:
d:\Sources\Rails\pcount-mobile>convert --version
 Version: ImageMagick 6.9.3-7 Q16 x64 2016-03-06 http://www.imagemagick.org
 Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC
 License: http://www.imagemagick.org/script/license.php
 Visual C++: 180040629
 Features: Cipher DPC Modules OpenMP
 Delegates (built-in): bzlib cairo freetype jng jp2 jpeg lcms lqr openexr pangocairo png ps rsvg tiff webp xml zlib

 

Das scheint eigentlich alles zu passen. Denn ImageMagick sagt mir, es ist Version 6.9.3 mit einer Farbtiefe von 16 Bit (= Q16) für eine x64 Maschine.

Erst nach einer gewissen Rumsucherei ist mir wieder eingefallen, dass es Ruby 1.9.3. ja nur für x86, also 32 Bit gibt. Somit bin ich rüber auf die ImageMagick Homepage gegangen und habe mir die neueste Version geladen, aber diesmal in der 32 Bit Version. Wichtig! Es muss die Installer Version sein, weil nur bei ihr die Header und OLE Controls mitgeliefert werden.

 

screenshot-installation-imagemagick-6.9.3 32bit 3

 

Ich habe diese Version dann in das Verzeichnis  d:\opt\ImageMagick-6.9.3-7-Q18-x86 installiert. Hier ist (angeblich) wichtig, dass der Pfad keine Leerzeichen enthält.

 

Und dann habe ich das gem erst mal deinstalliert, den Pfad gesetzt und dann das gem wieder installiert

d:\Sources\Rails\pcount-mobile>gem uninstall rmagick --version 2.15.4
 Successfully uninstalled rmagick-2.15.4

set PATH=%PATH%;d:\opt\ImageMagick-6.9.3-7-Q16-x86
 
d:\Sources\Rails\pcount-mobile>gem install --version 2.15.4 rmagick
 Temporarily enhancing PATH to include DevKit...
 Building native extensions. This could take a while...
 Successfully installed rmagick-2.15.4
 1 gem installed
 Installing ri documentation for rmagick-2.15.4...
 Installing RDoc documentation for rmagick-2.15.4...

D:\Sources\Rails\project>rails s
=> Booting WEBrick
=> Rails 3.2.11 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2016-03-30 18:44:51] INFO WEBrick 1.3.1
...

 

Und wie man sieht, funktioniert es nun.