君の瞳はまるでルビー - Ruby 関連まとめサイト

RMagick を Windows にインストールする方法

最終更新: 2017-06-08 (木) 00:32:12 (111d)

目的

RMagick を Windows にインストールすることが目的です。筆者のインストール実績は Windows 7 / Windows 10 に対してあります。

RMagick が特別なのは以下の点です。

  • C 言語で実装されたネイティブコードを含んでいる。
  • ImageMagick という画像編集用ソフトウェアを使っている。

従って、以下が必要になります。

  • DEVELOPMENT KIT をセットアップすること。
  • ImageMagick をインストールすること。

手順

1. DEVELOPMENT KIT をセットアップする

2. ImageMagick をインストールする

  • バージョンの選択に注意すること。
    • RMagick 2.16.0 の時点では ImageMagick 7 系に未対応であり、ImageMagick 6 系を入れる必要がある。
    • dll 版を使用する。static 版は使用できない。
    • x86 / x64 は使用している Ruby の環境に合わせて選択する。
    • Q8 や Q16 などは好みで選択して構わない。
  • ImageMagick 6 系をダウンロードするには ImageMagick 本家の binaries ディレクトリ配下に置いてある古いバイナリを選ぶ。
  • インストール時、Select Addtional Tasks の画面で以下の選択をする。
    • Add application directory to your system path
    • Install development headers and libraries for C and C++
screenshot_imagemagcik_install_opt.jpg

3. 環境変数を設定する

RMagick コンパイル時、ImageMagick のインクルードファイルおよびライブラリファイルが見えるようパスを通します。

  • CPATH = {ImageMagick インストールディレクトリ}/include *1
  • LIBRARY_PATH = {ImageMagick インストールディレクトリ}/lib

※既にコマンドプロンプトを起動している場合は、環境変数を反映するためにコマンドプロンプトを一度閉じて立ち上げなおす必要があります。

4. RMagick をインストールする

準備が整ったら以下のコマンドを実行し、RMagick をインストールします。

gem install rmagick

このコマンドは、

  • RMagick 本体のダウンロード
  • DEVELOPMENT KIT によるコンパイル作業
  • インストール

など、必要な全ての作業をしてくれます。

うまくいかない場合は、トラブルシューティングを参照してください。

5. 確認

以下を実行してください。

gem list --local rmagick

以下の通り出力されることを確認してください。

*** LOCAL GEMS ***

rmagick (X.X.X)

以下のコマンドを実行して、RMagick が動くことを確認しましょう。

ruby -e "require 'rmagick';puts Magick::colors"

以下のように色の一覧が出力されれば大丈夫です。

name=AliceBlue, compliance=AllCompliance, color.red=61680.5, color.green=63736.5, color.blue=65535.5, color.opacity=0 
name=AntiqueWhite, compliance=AllCompliance, color.red=64250.5, color.green=60395.5, color.blue=55255.5, color.opacity=0 
name=AntiqueWhite1, compliance=X11Compliance, color.red=65535.5, color.green=61423.5, color.blue=56283.5, color.opacity=0 
name=AntiqueWhite2, compliance=X11Compliance, color.red=61166.5, color.green=57311.5, color.blue=52428.5, color.opacity=0 
...

インストールできても、動作しない場合があるので、ここまで確認してから喜んだ方が良いと思います。

トラブルシューティング

ImageMagick のバージョンを選択する

ImageMagick と RMagick の組み合わせによってはインストールできないことがあります。以下を参考にしてください。

RMagickImageMagickビット成否確認日報告者
2.13.26.5.6-8-Q8-windows-dll32-
2.13.26.8.0-3-Q16-windows-x64-dll.exe64×-
2.13.26.8.0-4-Q16-windows-dll.exe32-
2.13.26.8.2-4-Q16-x86-dll.exe32×2013/02/02
2.13.26.8.2-4-Q16-x64-dll.exe64×2013/02/02
2.13.26.8.5-8-Q8-x86-dll.exe322013/05/30
2.13.26.8.5-8-Q16-x86-dll.exe322013/05/30
2.13.26.8.5-9-Q16-x86-dll322014/01/20passerby
2.13.26.8.7-0-Q16-x86-dll322014/01/20passerby
2.13.26.8.7-1-Q16-x86-dll322014/01/20passerby
2.13.26.8.7-5-Q16-x86-dll322014/01/20passerby
2.13.26.8.7-6-Q16-x86-dll322014/01/20passerby
2.13.26.8.7-7-Q16-x86-dll322014/01/20passerby
2.13.26.8.7-8-Q16-x86-dll322014/01/20passerby
2.13.26.8.7-9-Q16-x86-dll32×2014/01/20passerby
2.13.26.8.7-10-Q16-x86-dll32×2014/01/20passerby
2.13.26.8.8-0-Q16-x86-dll32×2014/01/20passerby
2.13.46.9.0-4-Q16-x64-dll642015/01/27
2.16.07.0.3-1-Q16-x86-dll32×2016/09/29
2.16.06.9.5-10-Q8-x86-dll322016/09/29
2.16.06.9.6-3-Q16-HDRI-x64-dll642016/11/01
2.16.06.9.8-2-Q8-x64-dll642017/3/23ma
2.16.06.9.8-4 Q16armv7l2017/5/8z.kangaroo
2.16.07.0.5-5armv7l×2017/5/8z.kangaroo

動作確認した実績がある方からコメントを頂けるとみんなが助かります。

補足:Q8/Q16, x86/x64, dll/static 等について

まず Q8 と Q16 の違いですが、色の ImageMagick の内部表現ビット数(RGB 各要素に使うビット数)の違いです。

Q8RGB の各要素に 8 ビット(RGB 各要素 0 ~ 255/3 色分で 24 ビット)
Q1616 ビット(RGB 各要素 0 ~ 65,536/3 色分で 48 ビット)

こだわりがないのであればとりあえず Q16 で良いと思います。

次に x86 や x64 ですが、これは 32 ビット版用(x86)か 64 ビット版用(x64)の違いです。使用している Ruby の環境に合わせてください。

OS が 64 ビット版でも 32 ビット版用の Ruby を使用している場合は 32 ビット版用(x86)を使います。

最後に dll と static ですが、これは ImageMagick の機能を外部から使用可能かどうかを表しています。

dll外部から機能が使用可能。
static外部から機能が使用不可。

RMagick を使うときは必ず dll を使います。

gem install を諦めて自分でコンパイルする

gem install rmagick によるインストールを諦めて自力でコンパイルする方法を紹介します。

この方法を使うと、問題点などが詳細にわかります。状況によってはネイティブコードを自力で修正できるかもしれません。

RMagick をダウンロードし、解凍してください。

  • rmagick-rmagick-RMagick_XXX.zip
    • ZIP ファイルを適当に解凍する(ユーザディレクトリや日本語を含むディレクトリは推奨しない。無難に tmp フォルダとか作った方が良い)。
    • インストール後、解凍したファイル群は削除して構わないので作業用の場所を確保すれば良い。

コマンドプロンプトで以下を実行してください。

cd {DEVELOPMENT KIT のインストールディレクトリ}
devkitvars.bat
msys

msys を実行した時点で新しいコマンドプロンプトが起動します。以下のコマンドを新しく起動したコマンドプロンプトで実行してください。

msys の環境ではディレクトリの指定方法が Windows 標準と以下のように異なるので注意してください

  • ディレクトリの区切りは「\」ではなく「/」を使用する。
  • ドライブの指定が「C:\」ではなく「/c」となる。
cd {RMagick を解凍したディレクトリ}
ruby setup.rb
ruby setup.rb install
gem install --bindir ext/RMagick rmagick

最後の gem install コマンドは実行しなくても動きます。 Bundler を利用している場合など、 gem で管理されていることがどうしても必要な場合などに使ってください。

ruby setup.rb 実行時に Unable to get ImageMagick version が発生した場合

ruby setup.rb 実行時にエラーが発生する場合があります。その場合、エラーメッセージの中に以下の内容が無いか確認してください。

無効なドライブ指定です。
Unable to get ImageMagick version

その場合、{RMagick を解凍したディレクトリ}/ext/RMagick/extconf.rb を書き換えて対処します。

extconf.rb を「Unable to get ImageMagick version」というキーワードで検索してください。

以下のような記述が2箇所見つかるはずです。

`convert -version` =~ /Version: ImageMagick (\d+\.\d+\.\d+)-\d+ /
abort "Unable to get ImageMagick version" unless $1

convert の部分を identify に書き換えて保存し、ruby setup.rb を再度実行してください。

convert コマンドは本来 ImageMagick のコマンドですが、Windows には組み込みで convert というコマンドがあり、ImageMagick の convert コマンドの呼び出しがうまくいかないのが原因です。

代わりに ImageMagick の identify コマンドが使えるので、そちらを使うように書き換えるというのがこの対処方法の意味合いです。

それでもダメな場合

コメントに症状を書いてください。

何か参考になる情報を提供できるかもしれません。もしくは、第三者の誰かが助けてくれるかもしれません。

参考

以下は英語のページです。本ページは、以下のページの手順を試した結果を踏まえ、それを日本語にしたものです。

関連

コメント

本ページの内容に関して何かコメントがある方は、以下に記入してください。

最新の10件を表示しています。 コメントページを参照

  • 解決して良かったですね(笑) -- トゥイー 2014-04-03 (木) 15:59:34
  • 旧バージョンここでダウンロードできるようですよ。http://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/binaries/ -- soha 2014-04-09 (水) 00:43:36
  • 有用なコメントありがとうございます!必要に応じて教えて頂いたリンクへ誘導するよう本文を書きなおしました。 -- トゥイー 2014-05-07 (水) 15:45:00
  • 内容を再整理して、不要そうな記述を削除したり、書き直したりしました。soha さんに教えてもらった旧バージョンのダウンロードリンクもいつの間にやら Not Found に。ImageMagick バージョン 6 系を現在手に入れる方法でわかっているのは本家の http://www.imagemagick.org/download/binaries/ にアクセスする方法なので、その旨を記載しました。 -- トゥイー 2016-11-03 (木) 10:39:10
  • 最初にコマンドプロンプトを起動してから環境変数を変更してたので、環境変数の変更が反映されずにインストールがうまくいきませんでした。よろしければ僕みたいなバカのために、環境変数の変更はコマンドプロンプトを再起動しないと反映されないということを書いてあげてください・・・。 -- 名無し 2017-02-04 (土) 05:46:19
    • はひ!注記いれました;;悲しい出来事でしたね。あるあるです。 -- トゥイー 2017-03-06 (月) 22:21:08
  • 64bit ruby, rmaick(2.16.0), ImageMagick-6.9.8-2-Q8-x64-dll でインストールできました -- ma 2017-03-23 (木) 18:58:40
    • 動作報告ありがとうございます。本文に記載追加しました。 -- トゥイー 2017-03-28 (火) 21:38:00
  • armv7l ruby 2.4.1p111 , rmagick 2.16.0, 6.9.8-4 Q16 でインストール成功しました。 -- z.kangaroo 2017-05-08 (月) 15:52:57
  • mageMagick-7.0.5-5とrmagick 2.16.0 の組み合わせは、NGです。 -- z.kangaroo 2017-05-08 (月) 15:53:53
  • 情報ありがとうございます!armv7l っていうのはたぶんアーキテクチャの名前ですよね。扱い方をどうするべきか確証が持てなかったので32/64ビットの欄に書きました。変だったら突っ込んでください! -- トゥイー 2017-06-08 (木) 00:34:22
  • 64bit ruby(2.2), rmagick(2.16.0), Imagemagick-6.9.9-9-Q16-x64-dll インストールできました。ありがとうございました。 -- idemi 2017-08-23 (水) 15:05:06
お名前: