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.
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.