2014年8月10日日曜日

RMagick を Windows にインストールしてみた

今回は Windows への RMagick のインストールを行ってみた。
RMagick というのは、ruby 用の画像加工ライブラリで、トリミングやサイズ変更などを行う事ができる物。

元々は、ImageMagick という Unix 系でのライブラリのようだ。

さて、発祥が Unix 系なので Linux 等の機械にインストールするのが筋なのだろうが、手持ちが Windows 機なので、こちらでインストールできるかやってみる事にする。
仮想環境で、Linux を入れて行う方法もあるが、PC が非力なために極力ネイティブで行いたかった。

どんな時でもそうだが、Unix 系やその他の環境からの Windows 機への対応は良くない印象で、今回も案の定だった。
結局、トライアンドエラーでインストールできたので(しかも今ひとつどれが有効だったのか核心がない。。。)、記録だけ残しておく。

まず、インストール時の環境確認をした。
Ruby 自体がインストールされているかを確認した。
ruby -v
ruby 1.9.3p392 (2013-02-22) [i386-mingw32]
少し古いが、たぶん去年 Rails の確認を取る際に使用したままの物だろう。
フォルダを見ると RailsInstaller とかいうフォルダが存在していたので間違いない。

次に、gem の update を行った。
正直 ruby にまだ入門したばかりなので、このアップデート方法が有っているかは分からない。
gem update
rails の rdoc で恐ろしく時間がかかった。
止まったのかと思って、強制終了使用かと思ったぐらいだったが、放置して別の事していたら終わっていた。それでも1時間はかかったと思う。

時は来たという事で、さっそく RMagick のインストールをと思ったが、よく分からないので、以下のページを参考にさせていただいた。

君の瞳はまるでルビー - Ruby 関連まとめサイト
RMagick を Windows 7 にインストールする方法

http://www.ownway.info/Ruby/index.php?rmagick%2Fhowtoinstall%2Fwindows

欲しいタイトルそのままで良かった。
このページを追いながら、省けるところは省いて作業をしてみたが。。。ダメでした。。。
手間を惜しんでせこくせこく小手先だけでの対応で色々やってみたけどダメだったので、一通り上から作業していく事で成功した。

やった事と言えば、

1. Development Kit の更新
上記に書いているとおり、インストールしているのは RailsInstaller を使用した Ruby ということもあり、Development Kit が古いのでは無いか?という推測の元更新を行ってみた。

RubyInstaller のページから Development Kit をダウンロードする。

RubyInstaller for Wndows
http://rubyinstaller.org/downloads/

現在使用している Ruby は、1.9.3 だったので、それに対応した物をダウンロード。
(DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe 2014/08/10時点)

ダウンロードしたファイルを展開し、RailsInstaller のフォルダの DevKitへコピー。
ここを最初別の場所に置いて、後からフォルダ参照されない無い事に気がついてやり直したのは言うまでもない。

ファイルを置き換えたら、セットアップが必要とのことなので、フォルダまで移動してコマンドを実行。
cd {Development Kit のインストールディレクトリ}
ruby dk.rb init
ruby dk.rb install
2.ImageMagick のバージョンとインストール先ディレクトリの指定
RMagick をインストールするにあたり、ImageMagick のインストールが必要らしい。
そこで、インストールするバージョンだが、公式から最新版を取得して、またそのままインストーラのデフォルトのまま作業をした。
インストールを成功されている方の情報をみると、今のはバージョンが有っていないので、成功例があるバージョンを使用するようにした。

ImageMagic公式(今回ここは使わないけど参考に)
http://www.imagemagick.org/script/binary-releases.php#windows

ちなみに今回失敗した時のバージョンは、ImageMagick-6.8.9-6-Q16-x86-dll.exeだった。

今回は、参考サイトにある旧バージョン取得ページから成功例のある  ImageMagick-6.8.5-8-Q8-x86-dll.exe を使用してインストール。

SUNNET(スエーデンの大学?)
http://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/binaries/

インストールの時には、インストール先フォルダを C:\ 直下にして
オプションは、
・ Add application directory to your system path
・ Install development headers and libraries for C and C++
にチェックを入れてインストールをする。

インストール後は、システム環境変数をセットする。
CPATH = {ImageMagick のインストールディレクトリ}/include
LIBRARY_PATH = {ImageMagick のインストールディレクトリ}/lib
セット後は、設定を反映させるために再起動をかけておく。

3.RMagick インストール時に gem にバージョンを与える
成功されている方のインストールでは、gem install の時にバージョンの指定を行っていたので、参考にしてバージョン指定してみた。
gem install rmagick - v 2.13.2
これで RMagick のインストールが成功した。


X.失敗の振り返り
ちなみに失敗したときはログを見ろと言う事で、指定されたログを見てみた。
....
======================================================================
Sun 10Aug14 13:52:13
This installation of RMagick 0.0.0 is configured for
Ruby 1.9.3 (i386-mingw32) and ImageMagick 6.8.9
======================================================================



make
generating RMagick2-i386-mingw32.def
compiling rmagick.c
In file included from rmagick.c:13:0:
rmagick.h:81:2: error: #error Specified QuantumDepth is not supported.
rmagick.c: In function 'Magick_colors':
rmagick.c:40:5: warning: implicit declaration of function 'GetExceptionInfo'
rmagick.c:42:5: warning: passing argument 2 of 'GetColorInfoList' from incompatible pointer type
C:\Program Files\ImageMagick-6.8.9-Q16\include/magick/color.h:75:5: note: expected 'size_t *' but argument is of type 'long unsigned int *'
rmagick.c: In function 'Magick_fonts':
rmagick.c:90:5: warning: passing argument 2 of 'GetTypeInfoList' from incompatible pointer type
C:\Program Files\ImageMagick-6.8.9-Q16\include/magick/type.h:98:5: note: expected 'size_t *' but argument is of type 'long unsigned int *'
rmagick.c: In function 'Magick_init_formats':
rmagick.c:178:5: warning: passing argument 2 of 'GetMagickInfoList' from incompatible pointer type
C:\Program Files\ImageMagick-6.8.9-Q16\include/magick/magick.h:135:5: note: expected 'size_t *' but argument is of type 'long unsigned int *'
make: *** [rmagick.o] Error 1
ハッキリ言って、これだけ見て分かったら何も困らないのだが、、、
今見ると、RMagick のバージョンが 0.0.0 になっていたりするのが気になる。
その他は、ImageMagick のバージョンが最新という点とインストール先が Program Files の下という点か?
Dev Kit も見当違いのフォルダに置いていたりとしていたので、結局核心を突く前にインストールが成功してしまった。
問題点の検証する気が起きないので、次出たら作業ログを取ってやっていこう。。。

参考ページには、インストールできたからと言ってRMgacik が動くわけではないとの事を書かれてあったので、サンプルページを作成、実行しエラーが出ない事を確認した。
(requrire でライブラリが読めるかの確認だけだけど)

はて、困っている方の参考になるであろうか心配である。。。

0 件のコメント:

コメントを投稿