ImageMagickが依存しているライブラリをyumでインストール。
$ sudo yum install bzip2-devel lcms-devel libjpeg-devel libX11-devel libXt-devel libtiff-devel ghostscript-devel libXext-devel libpng-devel
ImageMagickのダウンロードサイトからソースを取得して、ビルドとインストールを行う。
$ wget ftp://ftp.../ImageMagick.tar.gz $ tar xzvf ImageMagick.tar.gz $ cd ImageMagick-6.6.7-10/ $ ./configure && make $ sudo make install
インストールを確認
$ which Magick-config /usr/local/bin/Magick-config $ Magick-config --version 6.6.7 Q16
RMagickをインストール
$ sudo gem install rmagick
ここで、
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.13.1. 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.13.1 for inspection. Results logged to /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.13.1/ext/RMagick/gem_make.out
のように
Can't install RMagick 2.13.1. Can't find Magick-config in /usr/bin:/bin
というエラーになる場合は、sudoした時に/usr/local/binにPATHが通っていない(環境変数が引き継がれていない)ので、PATHが引き継がれるよう設定してから、再度rmagickをインストールする。
$ sudo gem install rmagick Building native extensions. This could take a while... Successfully installed rmagick-2.13.1 1 gem installed
ldconfig
実行時に以下のようなエラーになる場合
libMagickCore.so.4: cannot open shared object file: No such file or directory - /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rmagick-2.13.1/lib/RMagick2.so /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/rmagick-2.13.1/lib/RMagick2.so
これは、共有ライブラリが認識されていないために起きている。
libMagickCore.so.4が/usr/local/libに存在するのに認識されていない場合は、/usr/local/libをldconfigで追加してやる必要がある。
まず、ldconfigを実行してキャッシュを生成する。
$ sudo /sbin/ldconfig
それでもエラーになる場合は、ldconfig に -p オプションを付けて実行してキャッシュを確認してみる。
$ sudo /sbin/ldconfig -p
ldconfig -p の出力結果にlibMagickCore.so.4が見つからない場合は、ディレクトリを追加する必要がある。
ldconfigで読み込まれる/etc/ld.so.confを編集。
include ld.so.conf.d/*.conf
となっていたのを
/usr/local/lib include ld.so.conf.d/*.conf
のように、共有ライブラリが含まれるディレクトリを追加する。
そしてldconfigを実行してキャッシュを作成する。
$ sudo /sbin/ldconfig
-pオプションでキャッシュを確認。
$ sudo /sbin/ldconfig -p
出力結果に、以下のように使用する共有ライブラリが含まれるようになればOK。
libMagickWand.so.4 (libc6,x86-64) => /usr/local/lib/libMagickWand.so.4 libMagickWand.so (libc6,x86-64) => /usr/local/lib/libMagickWand.so libMagickCore.so.4 (libc6,x86-64) => /usr/local/lib/libMagickCore.so.4 libMagickCore.so (libc6,x86-64) => /usr/local/lib/libMagickCore.so libMagick++.so.4 (libc6,x86-64) => /usr/local/lib/libMagick++.so.4 libMagick++.so (libc6,x86-64) => /usr/local/lib/libMagick++.so
Railsアプリケーションで
config.gem "rmagick", :lib => "RMagick"
としている場合に、
Missing these required gems: rmagick >= 0
というエラーになってしまう場合も共有ライブラリが認識されていない可能性があるので、ldconfigをチェックする。
Can't install RMagick 2.13.1. Can't find MagickWand.h.
Can't install RMagick 2.13.1. Can't find MagickWand.h.
というエラーでRMagickをインストールできない場合は、PKG_CONFIG_PATHを設定してインストールする。
Can’t install RMagick 2.13.1. Can’t find MagickWand.h.