CentOS5.5のシステムをセットアップしていました。
yumからシステムを一通りアップデートしてから、PerlをCPANでモジュール群を更新したのですが、Image::Magickを入れようとしたところ、force installにしてもNOT OKとなり、インストールできませんでした。
これはImageMagickのバージョンとPerlの(コアなモジュール)バージョンとの依存の影響と思われ、Windowsの場合はImageMagickとActivePerlのバージョンは細かく指定されています。
Linuxの場合は自動で依存を解消してくれるものと思っていましたが、どうやらダメだったようです。
ImageMagickのために、別のディストリを入れなおすことも考えましたが、それではあまりにも情け無いので、だめもとで手動でソースからコンパイルしてインストールに挑戦しました。
まずはソースの取得
[root@localhost ~]# wget ftp://ftp.kddilabs.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
--2010-07-20 15:44:05-- ftp://ftp.kddilabs.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
=> `ImageMagick.src.rpm'
ftp.kddilabs.jp をDNSに問いあわせています... 192.26.91.193
ftp.kddilabs.jp|192.26.91.193|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。 ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。 ==> CWD /graphics/ImageMagick/linux/SRPMS ... 完了しました。
==> SIZE ImageMagick.src.rpm ... 8747108
==> PASV ... 完了しました。 ==> RETR ImageMagick.src.rpm ... 完了しました。
長さ: 8747108 (8.3M)
100%[======================================>] 8,747,108 3.39M/s 時間 2.5s
2010-07-20 15:44:08 (3.39 MB/s) - `ImageMagick.src.rpm' へ保存終了 [8747108]
検索してヒットするサイトの中にはURLが「kddilabs」ではなく「kddlabs」とありますが、どちらでもいい(?)みたいです。こちらの環境でkddlabsはDNS解決できませんでしたがkddilabsでは通りました。
ここからsrc.rpmを取得して展開します。
コマンドなら次の通り
[root@localhost ~]# rpm -ivh –nomd5 ImageMagick.src.rpm
1:ImageMagick 警告: ユーザ cristy は存在しません – root を使用します
警告: グループ cristy は存在しません – root を使用します
########################################### [100%]
警告: ユーザ cristy は存在しません – root を使用します
警告: グループ cristy は存在しません – root を使用します
同じ階層に「_FILES」という文字が追加されたディレクトリがあるはずなので、移動します。
[root@localhost ~]# cd ImageMagick.src.rpm_FILES [root@localhost ImageMagick.src.rpm_FILES]# ls ImageMagick-6.6.3-0.tar.bz2 ImageMagick.spec
とりあえずビルドしてみます。
[root@localhost ImageMagick.src.rpm_FILES]# rpmbuild -ba ImageMagick.spec
エラー: ビルド依存性の失敗:
libtiff-devel は ImageMagick-6.6.3-0.i386 に必要とされています
giflib-devel は ImageMagick-6.6.3-0.i386 に必要とされています
perl-devel >= 5.8.1 は ImageMagick-6.6.3-0.i386 に必要とされています
ghostscript-devel は ImageMagick-6.6.3-0.i386 に必要とされています
djvulibre-devel は ImageMagick-6.6.3-0.i386 に必要とされています
libwmf-devel は ImageMagick-6.6.3-0.i386 に必要とされています
jasper-devel は ImageMagick-6.6.3-0.i386 に必要とされています
libtool-ltdl-devel は ImageMagick-6.6.3-0.i386 に必要とされています
lcms-devel は ImageMagick-6.6.3-0.i386 に必要とされています
librsvg2-devel は ImageMagick-6.6.3-0.i386 に必要とされています
いろいろと足らないと文句を言われました。
とりあえずyumで片っ端から入れていきます。
[root@localhost ImageMagick.src.rpm_FILES]# yum install libtiff-devel giflib-devel perl-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libtool-ltdl-devel lcms-devel librsvg2-devel
進捗は省略します。
最終的に次の3つが残ります。
perl-devel >= 5.8.1 は ImageMagick-6.6.3-0.i386 に必要とされています djvulibre-devel は ImageMagick-6.6.3-0.i386 に必要とされています jasper-devel は ImageMagick-6.6.3-0.i386 に必要とされています
まず、「perl-devel」はcentOS5.5ではperlに頭語されているらしいので不要です。
specファイルの15行目(辺り)にあるperl-develを削除またはコメントアウトします。
次に、「djvulibre-devel」はリポジトリ「RPMForge」または「Dag」を利用してインストールします。
導入方法は検索するなどして調べてください。
大量に解説サイトがあるので省略します。
最後に、「jasper-devel」は「http://dev.centos.org/centos/5/testing/i386/RPMS/」にCentOS5用のRPMがあります。他のサイトにある通常のel5.i386のrpmは依存解消できずにインストールできませんでした。
これら3つが解決すれば晴れてImageMagickのコンパイルが開始できます。
[root@localhost ImageMagick.src.rpm_FILES]# rpmbuild -ba ImageMagick.spec
かなり時間がかかります。
問題なく終われば、以下の場所にrpmが生成されます。
[root@localhost redhat]# cd /usr/src/redhat/RPMS/i386
[root@localhost i386]# ls
ImageMagick-6.6.3-0.i386.rpm ImageMagick-devel-6.6.3-0.i386.rpm
ImageMagick-c++-6.6.3-0.i386.rpm ImageMagick-doc-6.6.3-0.i386.rpm
ImageMagick-c++-devel-6.6.3-0.i386.rpm ImageMagick-perl-6.6.3-0.i386.rpm
ImageMagick-debuginfo-6.6.3-0.i386.rpm
ここまで来れば(おそらく大丈夫です。
[root@localhost i386]# rpm -Uvh ImageMagick-*
準備中... ########################################### [100%]
1:ImageMagick ########################################### [ 14%]
2:ImageMagick-c++ ########################################### [ 29%]
3:ImageMagick-perl ########################################### [ 43%]
4:ImageMagick-debuginfo ########################################### [ 57%]
5:ImageMagick-devel ########################################### [ 71%]
6:ImageMagick-c++-devel ########################################### [ 86%]
7:ImageMagick-doc ########################################### [100%]
[root@localhost i386]# convert -version
Version: ImageMagick 6.6.3-0 2010-07-20 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features:
でめたしでめたし。お疲れ様でした。
後で気がついたのですが、コンパイル済みのrpmファイルが置いてありました。
ftp://ftp.kddilabs.jp/graphics/ImageMagick/linux/CentOS/
64bit環境ではコンパイル済みrpmファイルの保存でファイルが見付からないといわれてうまくいきませんでした。
もひとつおまけで、切手も切れない関係のfhostscriptのrpmもみつけました。
http://www.clearfield.com/ghostscript.8.64/ghostscript.html