CentOS5.6へのImageMagickのインストール

# cd
# mkdir imagemagick
# cd imagemagick
# 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
# wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/linux/CentOS/i386/ImageMagick-6.7.1-0.i386.rpm
# wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/linux/CentOS/i386/ImageMagick-devel-6.7.1-0.i386.rpm
# wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/linux/CentOS/i386/ImageMagick-c++-6.7.1-0.i386.rpm
# wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/linux/CentOS/i386/ImageMagick-c++-devel-6.7.1-0.i386.rpm
# sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.conf
# yum -y install fontconfig-devel libtool-ltdl-devel
# yum -y install --enablerepo=rpmforge fftw3 fftw3-devel graphviz djvulibre openexr
# yum -y install jasper-libs-1.900.1-7.el5.kb.i386.rpm
# yum -y install jasper-devel-1.900.1-7.el5.kb.i386.rpm

ここまでは問題なく進むが、以下のrpmインストールで、

# yum -y install ImageMagick-6.7.1-0.i386.rpm

次のようにエラーが発生してインストール失敗。
どうやら、依存関係のエラー。libwebp.so.0が足りないとのこと。

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: rsync.atworks.co.jp
 * extras: rsync.atworks.co.jp
 * updates: rsync.atworks.co.jp
Setting up Install Process
Examining ImageMagick-6.7.1-0.i386.rpm: ImageMagick-6.7.1-0.i386
Marking ImageMagick-6.7.1-0.i386.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package ImageMagick.i386 0:6.7.1-0 set to be updated
--> Processing Dependency: liblzma.so.0 for package: ImageMagick
--> Processing Dependency: libwebp.so.0 for package: ImageMagick
--> Processing Dependency: libwmf-0.2.so.7 for package: ImageMagick
--> Processing Dependency: libwmflite-0.2.so.7 for package: ImageMagick
--> Running transaction check
---> Package ImageMagick.i386 0:6.7.1-0 set to be updated
--> Processing Dependency: libwebp.so.0 for package: ImageMagick
---> Package libwmf.i386 0:0.2.8.4-10.2 set to be updated
--> Processing Dependency: gd >= 2.0.21 for package: libwmf
---> Package xz-libs.i386 0:4.999.9-0.3.beta.20091007git.el5 set to be updated
--> Running transaction check
---> Package ImageMagick.i386 0:6.7.1-0 set to be updated
--> Processing Dependency: libwebp.so.0 for package: ImageMagick
---> Package gd.i386 0:2.0.33-9.4.el5_4.2 set to be updated
--> Finished Dependency Resolution
ImageMagick-6.7.1-0.i386 from /ImageMagick-6.7.1-0.i386 has depsolving problems
  --> Missing Dependency: libwebp.so.0 is needed by package ImageMagick-6.7.1-0.i386 (/ImageMagick-6.7.1-0.i386)
Error: Missing Dependency: libwebp.so.0 is needed by package ImageMagick-6.7.1-0.i386 (/ImageMagick-6.7.1-0.i386)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
# wget http://download.opensuse.org/repositories/devel:/libraries:/c_c++/openSUSE_11.3/src/libwebp-0.1.2-1.1.src.rpm
# rpmbuild --rebuild libwebp-0.1.2-1.1.src.rpm
libwebp-0.1.2-1.1.src.rpm をインストール中です。
警告: InstallSourcePackage: ヘッダ V3 DSA signature: NOKEY, key ID 09ca02b0
エラー: ビルド依存性の失敗:
        libpng-devel は libwebp-0.1.2-1.1.i386 に必要とされています
        xz は libwebp-0.1.2-1.1.i386 に必要とされています

libpng-develとxzが必要とのこと。

# yum install libpng-devel
# yum install xz
# rpmbuild --rebuild libwebp-0.1.2-1.1.src.rpm
libwebp-0.1.2-1.1.src.rpm をインストール中です。
警告: InstallSourcePackage: ヘッダ V3 DSA signature: NOKEY, key ID 09ca02b0
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.34740
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /usr/src/redhat/BUILD
+ rm -rf libwebp
+ tar -xf /usr/src/redhat/SOURCES/libwebp-0.1.2.tar.xz
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: Read 4724 bytes from /usr/src/redhat/SOURCES/libwebp-0.1.2.tar.xz
tar: Error exit delayed from previous errors
エラー: /var/tmp/rpm-tmp.34740 の不正な終了ステータス (%prep)


RPM ビルドエラー:
    InstallSourcePackage: ヘッダ V3 DSA signature: NOKEY, key ID 09ca02b0
    /var/tmp/rpm-tmp.34740 の不正な終了ステータス (%prep)

どうやら、tarコマンドで、xz形式のファイルが解凍出来ないとのエラー。
xzファイルってなんだろうと思いますと、次のようなことがわかる。

また、2009年3月5日にリリースされたGNU tarバージョン1.22からは、gzipに比べて圧縮効率が大きく向上した xz圧縮(拡張子.tar.xz)という新しい圧縮フォーマットがサポートされています。

http://linuxserver.jp/Linux/Linux%E3%81%A7%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%9C%A7%E7%B8%AE%E3%83%BB%E8%A7%A3%E5%87%8D.php

CentOSのtarコマンドのバージョンを確認すると、1.15.1なので、xzには対応していない。

# tar --version
tar (GNU tar) 1.15.1

現時点でCentOSでは、tarは1.22は利用できないので、SPECファイルを書き換えて対応する。

vi /usr/src/redhat/SPECS/libwebp.spec

以下の行を書き換え。

Source:         %name-%version.tar.xz
↓
Source:         %name-%version.tar.gz

ソースファイルのダウンロード

# wget http://webp.googlecode.com/files/libwebp-0.1.2.tar.gz
# cp libwebp-0.1.2.tar.gz /usr/src/redhat/SOURCES/
# rpmbuild -bb /usr/src/redhat/SPECS/libwebp.spec

実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.65676
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /usr/src/redhat/BUILD
+ rm -rf libwebp
+ /bin/gzip -dc /usr/src/redhat/SOURCES/libwebp-0.1.2.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd libwebp
/var/tmp/rpm-tmp.65676: line 36: cd: libwebp: No such file or directory
エラー: /var/tmp/rpm-tmp.65676 の不正な終了ステータス (%prep)

/usr/src/redhat/BUILD以下にディレクトリlibwebpが無いので移動できないとのエラー。
tar.gzファイルを解凍すると、以下のようにバージョン番号まで含んだディレクトリが作成される。

/usr/src/redhat/BUILD/libwebp-0.1.2/

そこで、今度は

vi /usr/src/redhat/SPECS/libwebp.spec

以下の行を書き換え。

%prep setup -qn %name
↓
%prep setup -qn %name-%version

実行

# rpmbuild -bb /usr/src/redhat/SPECS/libwebp.spec

以下の4ファイルが作成される。

書き込み完了: /usr/src/redhat/RPMS/i386/libwebp-tools-0.1.2-1.1.i386.rpm
書き込み完了: /usr/src/redhat/RPMS/i386/libwebp0-0.1.2-1.1.i386.rpm
書き込み完了: /usr/src/redhat/RPMS/i386/libwebp-devel-0.1.2-1.1.i386.rpm
書き込み完了: /usr/src/redhat/RPMS/i386/libwebp-debuginfo-0.1.2-1.1.i386.rpm

コピーしておく。

cp /usr/src/redhat/RPMS/i386/libwebp-tools-0.1.2-1.1.i386.rpm ./
cp /usr/src/redhat/RPMS/i386/libwebp0-0.1.2-1.1.i386.rpm ./
cp /usr/src/redhat/RPMS/i386/libwebp-devel-0.1.2-1.1.i386.rpm ./
cp /usr/src/redhat/RPMS/i386/libwebp-debuginfo-0.1.2-1.1.i386.rpm ./

インストール。

rpm -i libwebp0-0.1.2-1.1.i386.rpm

ImageMagickのインストール

yum -y install ImageMagick-6.7.1-0.i386.rpm
yum -y install ImageMagick-devel-6.7.1-0.i386.rpm 
yum -y install ImageMagick-c++-6.7.1-0.i386.rpm
yum -y install ImageMagick-c++-devel-6.7.1-0.i386.rpm
sed -i 's/gpgcheck=0/gpgcheck=1/g' /etc/yum.conf

(参考)
http://d.hatena.ne.jp/okyohei/20110611/1307817824
http://d.hatena.ne.jp/okyohei/