Ubuntuサーバー構築入門

  • Ubuntu 20
  • Ubuntu 18
  • Ubuntu 16

ユーザー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'