views:

2722

answers:

5

I'm having problems installing the RMagick rubygem on Centos 5. I've followed the steps detailed in http://rmagick.rubyforge.org/install2-linux.html but when I try:

sudo gem install rmagick

the result is:

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... no
Can't install RMagick 2.11.0. Can't find Magick-config in /usr/bin:/bin

*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/local/bin/ruby


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.11.0 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.11.0/ext/RMagick/gem_make.out

The directory /usr/local/bin contains Magick-config but I haven't been able to get rubygems to look there. I tried the following but the result was the same:

sudo gem install rmagick -- --with-opt-dir=/usr/local/bin

Any suggestions would be appreciated.

+1  A: 

rmagick is notoriously difficult to install due to dependencies on other packages etc. I've just been through this game on Ubuntu and the trick was simply to install the right packages, including dev packages etc. I'm not familiar with CentOS but somebody will probably chime in with the right packages for that.

If all else fails, building and installing ImageMagick from source can usually be made work.

Edit: Looking at a related question, I see the following:

On some platforms (CentOS 5.2), I have had to install specific versions of RMagick because the default repositories for my package manager (yum) only had old versions of the RMagick devel libraries. I installed this version via:

gem install rmagick -v 1.15.13
frankodwyer
I've actually tried installing an old version as suggested above but it was incompatible with the packages installed. So then I configured, built and installed ImageMagick from source, having first installed the delegates as suggested by http://rmagick.rubyforge.org/install2-linux.html.I was able to then install RMagick from source but I need it installed as a RubyGem due to a dependency in my Rails app. What I'd love to figure out is how to force the gem install to find Magick-config in /usr/local/bin.
Keith Pitty
a dirty hack which may work is to symlink it to somewhere it does look. However in my experience once you get past the Magick-config type of issue there is then another error somewhere else - I think the root cause is typically not having a set of packages that are compatible. On ubuntu I first removed all packages related to ImageMagick and then built up a set that seemed to work by googling what others had done and trial and error. Like you I had to have it as a gem, for the same reason. Also had to have imagemagick come from packages as the whole server build was automated.
frankodwyer
Thanks for your responses Frank. Your comments encouraged me back on the path that resulted in me successfully installing 1.15.17 based on the packages.
Keith Pitty
+6  A: 

So I've finally managed to install version 1.15.17 of the rmagick rubygem! Here's what I did:

  1. Uninstalled ImageMagick 6.5.4-9 and the delegate libraries that I had installed from source
  2. sudo yum install ImageMagick
  3. sudo yum install ImageMagick-devel
  4. curl -O http://www.zacharywhitley.com/linux/rpms/fedora/core/6/i386/msttcorefonts-2.0-1.noarch.rpm
  5. sudo rpm -ivh msttcorefonts-2.0-1.noarch.rpm
  6. ln -s /usr/share/fonts/msttcorefonts/ /usr/share/fonts/default/TrueType
  7. sudo gem install rmagick -v 1.15.17 --no-rdoc --no-ri

Blog entries from David Bock and Will were invaluable.

Keith Pitty
The font link doesn't appear to work so I followed instructions at http://www.go2linux.org/msttcorefonts-true-type-fonts-on-linux to get the fonts installed. Worked like a charm.
Beerlington
The last step failed for me until I added the ruby headers: sudo yum install ruby-devel
bic72
maraspin
A: 

I've wrote a mini Howto to upgrade ImageMagick and install RMagick 2 on CentOS using RPM packages here:

http://www.cherpec.com/2009/10/howto-install-rmagick-2-on-centosrhel-5/

Vitalie Cherpec
A: 

I got around this in RHEL 5.4 by temporarily symlinking /usr/local/bin/Magick-config to /usr/bin/Magick-conf, so the gem install could find this Magick-config executable.

In my case, I installed ImageMagick from source with '--prefix=/usr/local'. For some reason, the gem install didn't want to look there for the config, even with 'gem install --local ../rmagick-2.12.2.gem -- -with-opt-dir=/usr/local/bin'. Running 'yum install ImageMagick-devel' would get the binary there, but then the gem install would say that ImageMagick was the wrong version.

NIck
A: 

kept getting this error after following the instructions in the most voted answer:

RMagick: unable to read font `(null)'.

so I have something to add to step 7, taken from an update to David Bock's blog:

http://blog.codesherpas.com/on_the_path/2009/09/installing-centos-5-imagemagick-and-rmagick-september-2009-edition.html

gem install rmagick -v 1.15.17 --no-rdoc --no-ri -- --disable-htmldoc

disabling html-documentation is crucial for avoiding further errors if your font files make rmagick unhappy. Just the outcome of about 2 hours of struggling with this issue.

nichobot