October 04, 2003

Image::Magick(PerlMagick)解決にむけて

あいかわらず解決しない…。しょうがないから共有ライブラリ全削除の方法をとろうと思う。

ようするにもともとDarwinに入っているPerlに上書きしない形でperl-5.8.0をいれたのがすべての原因らしい。で、しょうがないので上のリンクに書いてあるやり方を試してみる。
1./Library/Perlディレクトリにある、全ての共有ライブラリのファイル=*.bundleを削除。

find /Library/Perl -name '*.bundle' | xargs rm
(必要に応じてroot権限でどうぞ、以下同じ)

2./System/LibraryPerldarwin/CORE/libperl.dylibを削除(上のリンクには/Library/Perl/darwin/CORE/libperl.dylibと書いてあったが、たぶんこれはミス)
rm /Library/Perl/darwin/CORE/libperl/dylib

3.perl-5.8.0をmake install。こうするとliboerl.dylibが新しく作られる
make install (Perlのソースがあるディレクトリーで)

4.その多の共有ライブラリに関連したモジュールをmake install
make install
    または
perl -MCPAN -e 'install (HOGE)'

しかし、以前としてかわらず。ということで、ここはもう一回、ImageMagickをインストールしてみようとおもった<-これがよかったd(^_^)。参考ページ

いままではImageMagickでPerlMagickのコンパイル時にエラーがでていたので、./configure --without-perlでやっていたが、今回はそれをはずして実行。
するとmake install時にlibperl.aがありませんってなエラーがでる(以下参照)

(前略)Looks good
Writing Makefile for Image::Magick
( cd PerlMagick && make CC='cc' PerlMagick )
/usr/bin/perl -I/System/Library/Perl/darwin -I/System/Library/Perl
/System/Library/Perl/ExtUtils/xsubpp -typemap
/System/Library/Perl/ExtUtils/typemap Magick.xs > Magick.xsc && mv
Magick.xsc Magick.c
cc -c -I../ -I.. -D_REENTRANT -I/usr/local/include -g -pipe -pipe
-fno-common -DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing -O3
-DVERSION=\"5.30\" -DXS_VERSION=\"5.30\"
-I/System/Library/Perl/darwin/CORE -DHAVE_CONFIG_H Magick.c
mkdir blib
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/Image
mkdir blib/arch/auto/Image/Magick
rm -rf blib/arch/auto/Image/Magick/Magick.a
/usr/bin/ar cr blib/arch/auto/Image/Magick/Magick.a Magick.o &&
/usr/bin/ranlib blib/arch/auto/Image/Magick/Magick.a
chmod 755 blib/arch/auto/Image/Magick/Magick.a
Writing "Makefile.aperl" for this PerlMagick
Warning: /System/Library/Perl/darwin/CORE/libperl.a not found
If you're going to build a static perl binary, make sure perl is
installed
otherwise ignore this warning
Writing Makefile.aperl for Image::Magick
make -f Makefile.aperl PerlMagick
Writing perlmain.c
cd . && cc -c -I/System/Library/Perl/darwin/CORE -g -pipe -pipe
-fno-common -DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing -O3 \
-DVERSION=\"5.30\" \
-DXS_VERSION=\"5.30\" -I/System/Library/Perl/darwin/CORE perlmain.c
make[4]: *** No rule to make target
`/System/Library/Perl/darwin/CORE/libperl.a', needed by `PerlMagick'.
Stop.
make[3]: *** [PerlMagick] Error 2
make[2]: *** [PerlMagick/PerlMagick] Error 2
make[1]: *** [install-am] Error 2
make: *** [install-recursive] Error 1

だが、これは当然の結果でstatic libraryとしてPerlMagickをperl本体に組み込もうとしていたために発生するエラーらしい。dynamic libraryで自分的にはかまわないので、
cd PerlMagick

参考ページに書いてあるようにMakefile.PLを修正後、
make
make install

でPerlMagickインストールうまくいきました。結局CPANでエラーが出つづけていたのたは共有ライブラリどうのというよりかは、ImageMagick本体のインストールがCompleteしていなかったためではないだろうか…。

ともかくなんとかなったので、これからはPhotoLog的な使い方もしてみたいと思います。じゃ。

と思ったらアップロードしようとエラーがひたすらでる(涙)。GDと干渉しているらしい…。また次にチャレンジ予定。

以下、メモ
削除にあたって、再構築後にいれなきゃいけないモジュールは以下のとおり。
/Library/Perl//darwin/auto/Apache/Cookie/Cookie.bundle
/Library/Perl//darwin/auto/Apache/Leak/Leak.bundle
/Library/Perl//darwin/auto/Apache/Request/Request.bundle
/Library/Perl//darwin/auto/Apache/Symbol/Symbol.bundle
/Library/Perl//darwin/auto/Compress/Zlib/Zlib.bundle
/Library/Perl//darwin/auto/Data/Dumper/Dumper.bundle
/Library/Perl//darwin/auto/DBD/Pg/Pg.bundle
/Library/Perl//darwin/auto/DBI/DBI.bundle
/Library/Perl//darwin/auto/FCGI/FCGI.bundle
/Library/Perl//darwin/auto/GD/GD.bundle
/Library/Perl//darwin/auto/HTML/Parser/Parser.bundle
/Library/Perl//darwin/auto/Jcode/Unicode/Unicode.bundle
/Library/Perl//darwin/auto/Net/SSLeay/SSLeay.bundle
/Library/Perl//darwin/auto/Term/ReadKey/ReadKey.bundle

18:41 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/17
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。