Ktouth Brand. on Web

け〜くんこと K.Ktouth のだらだらした日常と突発的に作るプログラムや読み物とかの雑多サイト



[2011年05月28日]

続:RMagickのインストールに四苦八苦

2011年05月29日 07:07更新 筆者:K.Ktouth

Rubyベストプラクティス -プロフェッショナルによるコードとテクニック(AA)

以前も同じ事で悩んだ記憶というか記録があるわけですが。
最近「gem update」するたびに RMagick の最新版のインストールを試みたあげくに失敗するのが微妙に腹立たしくなってました(ぉぃ
もちろん自動処理ですから気にする必要はないし、そもそも NetBeans IDE 上の gem マネージャだとバージョン文字列にプラットフォームが入った奴は更新情報がぐちゃぐちゃだったりする訳なんですが。

で、もう一度最初からきちんと RMagick のサイン新番のビルドとインストールに着手してみました。
ここでは RubyInstaller(1.8.7)をベースに説明。

(以下、インストール方法の詳細)

関連ソフトのインストール

つーても、ある程度前提条件がそろっていればネットで探した情報ほど複雑なことはしなくていい模様。
前提条件とは……

  • RubyInstaller を使っている(1.8.7 / 1.9.2 etc.)
  • アドオンである DevKit を追加インストールしている

です。
ASRやRumixだとネイティブライブラリのコンパイル環境を整えるという別の手間がかかるので、その辺まできちんと面倒見てくれている RubyInstaller を使いましょうって事で。

で、この二つが導入されているなら。

現時点(2011/5/28)ですと、 ImageMagick-6.7.0-2-Q16-windows-dll.exe になります。x64版およびstatic不可です。Q16とQ8はどちらでもいいかと。
このインストールの際、出来れば Program Files(x86) 以下ではない方がやりやすいかも知れません。要は「空白を含まないフォルダ」にインストールしておく方がいいって事です。

以降は「C:\Ruby」に RubyInstaller と DevKit、「C:\Ruby\ImageMagick-6.7.0-2」に ImageMagick をインストールしたものとして話を進めます。

gem をインストール

実のところ、あとは gem をインストールするだけです。
ただしきちんとコンパイラやライブラリへのパスを通す必要があるので……

  1. RubyInstaller が作ったコマンドプロンプトを起動する。
    「Start Command Prompt with Ruby」というプログラムがスタートメニューに登録されているはずです。
  2. DevKit を利用可能にするバッチコマンド「C:\Ruby\devkitvars.bat」を実行する。
  3. 「gem install rmagick -v 2.13.1 -- --with-opt-dir="C:/Ruby/ImageMagick-6.7.0-2"」を実行する。

キモは後半の -- 以降です。ここ以降は extconf.rb にそのまま渡されます。検索で見つかる情報だと CFLAGS や LIBRARY_DIR 環境変数に各パスを通せみたいなことが書いてあったりしますが、自分の環境だと、環境変数の値が生成された Makefile にまで伝播していませんでした。この方法ならコンパイラやリンカに直接パスが指定されますので問題なくライブラリが生成可能です。
あと「ディレクトリ区切り文字は\ではなく/で記述」することが肝要です。実際に生成される Makefile は / で記述されるため、二つの記号が混在してうまく動作しません。加えてオプションに指定するディレクトリは前後の"が抜けますので、空白が入っていると正しく動作しません。

うまく行けば gem が正しくインストール出来ますので、あとは .dll のあるパス(C:\Ruby\ImageMagick-6.7.0-2)を PATH 環境変数に通して完了デス♪

本日のリンク元
アンテナ
その他のリンク元
検索