ユーザーPerlにcpanmでImage::Magickをインストールする
ユーザーPerlにcpanmでImage::Magicをインストールする方法です。
最初に注意を書いておきますと、Image::Magickモジュールは、ユーザー環境のPerlにcpanmで、インストールすることが非常に難しいモジュールです。cpanmで簡単にインストールすることができず、手動でMakefile.PLを書き換える必要があります。
新規にPerlシステム開発で、画像処理を行う場合は、Perlで書かれたImagerという画像編集モジュールがありますので、まずこちらを試してみましょう。
ImageMagicをインストールしてconvertコマンドなどをsystem関数で、呼び出すことは、次善の方法です。
ユーザーPerlにcpanmでImage::Magickをインストールするために必要なパッケージ
libmagickcore-devのインストール
PerlのImage::Magickをインストールする前提としてImageMagickのヘッダとライブラリをインストールしましょう。
ImageMagickの以下のヘッダを探します。
find /usr/include | grep 'ImageMagick.h' find /usr/include | grep 'magick-baseconfig.h'
以下のように表示されます。バージョン番号は異なる可能性があります。
/usr/include/ImageMagick-6/magick/ImageMagick.h /usr/include/x86_64-linux-gnu/ImageMagick-6/magick/magick-baseconfig.h
これらの、ImageMagicのインクルードディレクトリを覚えておきます。これらの名前は、Ubuntuのバージョンにより違う可能性があります。
/usr/include/ImageMagick-6 /usr/include/x86_64-linux-gnu/ImageMagick-6
libperl-devのインストール
Perlのヘッダとライブラリが必要です。
ユーザーPerlにcpanmでImage::Magickのインストールする
まず一度cpanmでImage::Magickをインストールしてみましょう。
cpanm Image::Magick
失敗しますね。ログを見ると「magick/magick-baseconfig.h」がないといわれています。
/usr/include/ImageMagick-6/magick/magick-config.h:21:10: fatal error: magick/magick-baseconfig.h: No such file or directory #include "magick/magick-baseconfig.h"
Makefileを書き換えて、インクルードディレクトリ「/usr/include/ImageMagick-6」にする作業をします。
まず、cpanmのビルドディレクトリに移動します。
cd ~/.cpanm/latest-build
lsコマンドでディレクトリを表示します。
ls
Image::MagickはPerlMagickに含まれているので、以下のディレクトリを見つけましょう。バージョン番号は、環境によって異なります。
PerlMagick-6.89
ディレクトリに移動。
cd PerlMagick-6.89
Makefileを編集します。
vi Makefile.PL
$INC_magickを書き換えます。以下のインクルードディレクトリを先頭に追加しましょう。「-I」はインクルードディレクトリを追加するgccのオプションです。
/usr/include/ImageMagick-6 /usr/include/x86_64-linux-gnu/ImageMagick-6
# 変更前 my $INC_magick = '-I/usr/local/include/ImageMagick-6 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/libxml2 -I"' . $Config{'usrinc'} . '/ImageMagick-6"'; # 変更後 my $INC_magick = '-I/usr/include/ImageMagick-6 -I/usr/include/x86_64-linux-gnu/ImageMagick-6 -I/usr/local/include/ImageMagick-6 -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/libxml2 -I"' . $Config{'usrinc'} . '/ImageMagick-6"';
後はコンパイルしてインストールです。
perl Makefile.PL make make install
モジュールを読み込んでエラーが出ないことを確認しましょう。
perl -e 'use Image::Magick'