CentOS5 に Ruby 1.8.7 とか 1.8.8 を入れると rubygems が zlib がないと怒る

ruby + Gruff を入れようとしたら,表題以外にもいろいろと怒られた.どういうふうに怒られたかを書いておく.下記はハマった手順なので,このとおりにしてはいけない・・・.正しいインストールの手順はこの後に書いてある

  1. ruby が 1.8.5 と古くてアレなので,1.8.8 あたりをとってきて make して install した.
  2. gems を入れようとしたところ,表題の通りの罠にハマった.
  3. 次に ImageMagick を入れようとする.
    • ここで yum install ImageMagick とすると,まず Magick-config が無いといって怒られる.
    • そこで yum install ImageMagick-devel とすると,今度はバージョンが低くてダメと怒られる.
    • 仕方ないので ImageMagick のソースを持ってきて make して install しようとする.
    • しかしここにも罠があり,make する前に yum install libjpeg-devel と yum install libpng-devel をしておく必要がある.これをしないと,あとで jpegpng を出力しようとしたとき Magick::ImageMagickError が出てハマる.
    • ImageMagick の configure の最後で JPEGPNG が yes になっているのを確認してから make を実行する.
  4. gem install rmagick を実行する.
    • ここで libjpeg や libpng がないと,Magick::ImageMagickError とかのエラーが出まくる.
    • また ImageMagick-devel が入ってないと,Magick-config が無いといわれてインストールそのものができない.
  5. gem install gruff を実行する.
    • 一見成功したように見えても,pngjpeg を吐くサンプルを実行すると Magick::ImageMagickError が出る.原因は上の通り.

というわけで,2011/8 時点で CentOS5 に ruby-1.8.7/1.8.8 + Gruff を入れる正しい手順は次の通りらしい.

  1. yum install zlib-devel を実行
  2. ruby 1.8.7 / 1.8.8 をソースからコンパイルしてインストール
  3. rubygems をソースからコンパイルしてインストール
  4. yum install libjpeg-devel を実行
  5. yum install libpng-devel を実行
  6. ImageMagick をソースからコンパイルしてインストール
  7. gem install rmagick を実行
  8. gem install gruff を実行

こんなところで苦労するとは思わなかった.ちなみに,入れたバージョンは以下の通り.

すごく参考になった記事群に感謝: