RMagickをCentOSに入れる。
先月位から初めてのRuby on Railsの仕事をしてる。既存システムの移行・機能追加なので、初心者の自分にはぴったりのプロジェクト。
そのシステムではRMagickというRubyからImageMagickを使う為のgemを使ってるので、サーバーのCentOSにインストールしようとしたけど、依存しているパッケージのバージョン要件とかが結構面倒だった。RMagickはバージョン1系と2系があるけど、今回は2系を入れる(要件によりv2.5.2指定…)。
■必要なパッケージ
RMagickバージョン2はImageMagick 6.3.0以降が必要。その他にも色々必要。詳しくはこのあたり。
一番の問題(と思われるの)は、CentOSでyumでインストールできるImageMagickのバージョンが古い事。非常にありがちな問題だけど。
■ImageMagickその他のインストール
ImageMagickを入れるには色々なやり方がけど、一番簡単なのはここからRPMを取ってきて入れる事。
次に簡単な方法は、FedoraのSRPMを入れてリビルドする事。リビルドのためには色んなパッケージのdevelパッケージを入れる必要があるので、少し面倒。
ImageMagickと、いくつかのパッケージを入れたら、後は普通にgem installでRMagickがインストールできる。
■環境
訳あってかなり古めの環境。
- CentOS 5.5
- ruby 1.8.6 (Fedora 12のSRPMをリビルド)
- RubyGems 1.3.7
■エラーメッセージ
以下、自分用メモ。
エラー1:ImageMagickがインストールされていない場合
$ sudo gem install rmagick -v=2.5.2 Building native extensions. This could take a while... ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb checking for Ruby version >= 1.8.2... yes checking for gcc... yes checking for Magick-config... no Can't install RMagick 2.5.2. 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/bin/ruby Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/rmagick-2.5.2 for inspection. Results logged to /usr/lib64/ruby/gems/1.8/gems/rmagick-2.5.2/ext/RMagick/gem_make.out
エラー2:ImageMagickのバージョンが古い場合
$ sudo gem install rmagick -v=2.5.2 Building native extensions. This could take a while... ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb checking for Ruby version >= 1.8.2... yes checking for gcc... yes checking for Magick-config... yes checking for ImageMagick version >= 6.3.0... no Can't install RMagick 2.5.2. You must have ImageMagick 6.3.0 or later. *** 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/bin/ruby Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/rmagick-2.5.2 for inspection. Results logged to /usr/lib64/ruby/gems/1.8/gems/rmagick-2.5.2/ext/RMagick/gem_make.out