I'm working on a Rail3 app. After struggling for several hours and finally installing the rmagick 2.13.1 gem without errors on win7x64 / ruby 1.9.2, I've run into another error. Yeah, I've heard that rails experience in windows could be painfull...
I use carrierwave to process and upload images to AWS S3. Processing looks like
class IconUploader < CarrierWave::Uploader::Base
require 'rmagick'
include CarrierWave::RMagick
...
process :resize_to_fit => [100, 100]
process :convert => :png
...
When I trigger file upload on my development machine, it throws me a windows popup, saying
CORE_RL_magick_.dll not found
Google wasn't really helpful on this one.
I have my PATH variable set to C:/ruby192/ImageMagick - its where I have installed ImageMagick to. And this folder has several CORE_RL dlls including the magick one. The DLL's themselves are not missing!
irb > require 'rmagick'
returns true
and convert -version
outputs this:
Version: ImageMagick 6.6.9-6 2011-04-14 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP
So I have several question.
- How do I solve this?
elseif
I don't, are there any other gems and/or graphic libraries that are supported by both windows and heroku?else
maybe there is a way to configure carrierwave, not to process images in dev environment
So far I've tried ImageMagick v 6.6.9 32bit dll, which gives the CORE_RL dll error,
64 bit static, which doesn't have dev headers to compile the rmagick gem,
and 64 bit dynamic, which 开发者_运维问答gives me tonns of undefined reference
errors during the gem compilation, every test, except the first one:
checking for snprintf() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes
checking for AcquireImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no
and so on...
Thanks everyone.
I've finally managed to install ImageMagick and build the RMagick gem and make it all work. Hooray.
It seems like the problem was in the DLL itself. When I tried to registed it, windows gave me a nice error about a problem with the dll.
So my way of solving all the issues is:
Go here
Download ImageMagick 6.6.1-10 32bit dynamic or any other version except the currently latest release 6.6.9, which has some DLL issues
Install it with options: Add to PATH and development headers. Installation path should not contain spaces. After the installation it should give you a message box about succesful dll registration.
In the command line type convert -version to check if everything works. It should print something like:
Version: ImageMagick 6.6.1-10 2010-05-15 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC Features: OpenMP
Install the DevKit if you haven't already.
Install the rmagick gem:
gem install rmagick --platform=ruby -- --with-opt-lib=c:/ruby192/ImageMagick/lib --with-opt-include=c:/ruby192/ImageMagick/include
It should print
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
And after a few minutes if everything goes right, you should see
Successfully installed rmagick-2.13.1
1 gem installed
Installing ri documentation for rmagick-2.13.1...
Installing RDoc documentation for rmagick-2.13.1...
And that's it. Hope this saves somebody from wasting several hours in frustration.
Just two more links that were helpful: 1 and 2 if you still can't install
This was a pain to get installed. Right now at this moment, I had to reinstall Ruby, Rails, the Devkit and ImageMagick. You're best bet is to do the same and go with the latest versions of all of them except Rails, unless your cool with 3.1. At this moment I am using the latest versions:
ImageMagick-6.7.2-1-Q16-windows-dll - Win32 dynamic at 16 bits-per-pixel
DevKit-tdm-32-4.5.2-20110712-1620-sfx
rubyinstaller-1.9.2-p290
Rails 3.0.9
My system:
Windows 7, x64
My path is a little different from the accepted answer.
My c:/ImageMagick
gem install rmagick --platform=ruby -- --with-opt-lib=c:/ImageMagick/lib --with-opt-include=c:/ImageMagick/include
I installed Ruby first with all the options checked off, then ImageMagick with the "associated path option" and "headers" checked off.
Then set up the devkit easily:
1) cd c:\DevKit
2) ruby dk.rb init
3) ruby dk.rb install
Then afterwards inside of the devkit (c:/devkit) did this and it installed without error:
gem install rmagick --platform=ruby -- --with-opt-lib=c:/ImageMagick/lib --with-opt-include=c:/ImageMagick/include
If you still have issues then maybe this could help you, I was trying this but I am to unfamiliar with setting the environments and getting Step 5 to work: http://www.waydotnet.com/blog/2010/02/rmagick-on-ruby-1-9-1-i386-mingw32-work-d/
The Step 5 I believe can be changed into what i did inside of the Devkit instead, give it a try and good luck!
I followed the steps on this post, but still got a lof of undefined errors. If this is your case as well you might want to try installing the 32 version of imagemagick, despite of having a 64 bit operating system. It worked for me. You can read more about it here: rmagick not building on windows 7 undefined reference errors
I'm pretty sure you're going to run into problems trying to run it on Heroku as well because RMagick just acts as a gem to interface with the ImageMagick processing libraries. ImageMagick needs to also be installed on the local machine as well, which I don't know you'll be able to do on Heroku. The ImageMagick installation contains the missing .dll you're after. I use it fairly frequently on a local project. Here's the link:
Link
I'd recommend installing the 64-bit "static" binary from the link above. I've ran into a problem or two trying to use the dll version.
Anyways download it, install it and then add your C:\Program Files\ImageMagick-6.5.6-Q8 (Or wherever yours is installed to) path to your PATH environment variable.
You should then be able to use your RMagick gem properly.
All the best.
精彩评论