この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
CentOS 5.4 で管理されている ImageMagickは 6.2.8.0 と古く新しいRMagickやらを使うとき何かと困ることがある。
今回は最新版のImageMagickをrpmでインストールする方法をご紹介します。
src.rpmからrpmをbuildします。
コマンドと実行結果を交えて手順を示します。
なお、RPMForgeが入っている事が前提です。
RPMForgeは以下のコマンドで使用可能になります。
$ sudo rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
まずSRCのRPMを取得
wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
下記ディレクトリがない場合は作りましょう。
$ sudo mkdir -p /usr/src/redhat/SOURCES
ソースRPMをインストール
[user@CentOS ~]$ sudo rpm -ivh --nomd5 ImageMagick.src.rpm
1:ImageMagick 警告: ユーザ cristy は存在しません - root を使用します
警告: グループ cristy は存在しません - root を使用します
########################################### [100%]
警告: ユーザ cristy は存在しません - root を使用します
警告: グループ cristy は存在しません - root を使用します
(cristyってだれ)
jasper は yum で持ってこれないので下記よりダウンロードしてインストールします。
64bit の場合
$ wget http://centos.karan.org/el5/extras/testing/x86_64/RPMS/jasper-libs-1.900.1-7.el5.kb.x86_64.rpm
$ wget http://centos.karan.org/el5/extras/testing/x86_64/RPMS/jasper-devel-1.900.1-7.el5.kb.x86_64.rpm
32bit の場合
$ wget http://centos.karan.org/el5/extras/testing/i386/RPMS/jasper-libs-1.900.1-7.el5.kb.i386.rpm
$ wget http://centos.karan.org/el5/extras/testing/i386/RPMS/jasper-devel-1.900.1-7.el5.kb.i386.rpm
[user@CentOS ~]$ sudo rpm -ivh jasper-libs-1.900.1-7.el5.kb.i386.rpm
準備中... ########################################### [100%]
1:jasper-libs ########################################### [100%]
[userCentOS ~]$ sudo rpm -ivh jasper-devel-1.900.1-7.el5.kb.i386.rpm
準備中... ########################################### [100%]
1:jasper-devel ########################################### [100%]
djvulibre-develはRPMForgeより持ってきます。
$ sudo yum --enablerepo=rpmforge install djvulibre-devel
Installed:
djvulibre-devel.i386 0:3.5.20-1.el5.rf
Dependency Installed:
djvulibre.i386 0:3.5.20-1.el5.rf libmng.i386
0:1.0.9-5.1 qt.i386 1:3.3.6-23.el5
Complete!
rpmbuildをインストールしてない方は入れます。
$ sudo yum install rpm-build
SPECSディクレトリに移動してImageMagickのspecを編集します。
perl-develはCentOSの場合perlに含まれるので削除します。
$ cd /usr/src/redhat/SPECS
$ sudo vi ImageMagick.spec
上から10行目付近のperl-develを削除
BuildRequires: libtiff-devel, giflib-devel, zlib-devel, perl-devel
↓
BuildRequires: libtiff-devel, giflib-devel, zlib-devel
では、RPMを作ります。
$ sudo rpmbuild -ba ImageMagick.spec
色々足りないといわれます。
エラー: ビルド依存性の失敗:
freetype-devel は ImageMagick-6.5.8-6.i386 に必要とされています
libpng-devel は ImageMagick-6.5.8-6.i386 に必要とされています
giflib-devel は ImageMagick-6.5.8-6.i386 に必要とされています
libwmf-devel は ImageMagick-6.5.8-6.i386 に必要とされています
libtool-ltdl-devel は ImageMagick-6.5.8-6.i386 に必要とされています
libxml2-devel は ImageMagick-6.5.8-6.i386 に必要とされています
librsvg2-devel は ImageMagick-6.5.8-6.i386 に必要とされています
足りないものはまとめてyum でインストールします。
$ sudo yum install freetype-devel libpng-devel giflib-devel libwmf-devel libtool-ltdl-devel libxml2-devel librsvg2-devel
おそらく上記だけ40個以上のパッケージを必要とするのでインストールが終わるまでしばし待ちます。
再度トライ
$ sudo rpmbuild -ba ImageMagick.spec
成功するとコンパイルが始まります。
これも時間がかかるのでコーヒーでも飲んでましょう。
成功すると下記ディレクトリにRPMが6つできあがります。
/usr/src/redhat/RPMS/{arc}/
まとめてインストールしてしまいましょう。
$ sudo yum install --nogpgcheck ImageMagick-6.5.8-6.i386.rpm ImageMagick-c++-6.5.8-6.i386.rpm ImageMagick-c++-devel-6.5.8-6.i386.rpm ImageMagick-devel-6.5.8-6.i386.rpm ImageMagick-doc-6.5.8-6.i386.rpm ImageMagick-perl-6.5.8-6.i386.rpm
Installed:
ImageMagick.i386 0:6.5.8-6 ImageMagick-c++.i386 0:6.5.8-6
ImageMagick-c++-devel.i386 0:6.5.8-6 ImageMagick-devel.i386
0:6.5.8-6 ImageMagick-doc.i386 0:6.5.8-6 ImageMagick-perl.i386
0:6.5.8-6
Complete!
これで最新のRMagickも楽にインストールできます。
基本すべてRPMで入れていったのでいざとなれば後から削除も可能です。