dポイントプレゼントキャンペーン実施中!

XML::Parser 2.34 をインストールしました。
rootになれないレンタルサーバーですので、
ユーザーディレクトリ配下にインストールしました。
エラーは出ていません。
が、使用時に、

use XML::Parser;

の行で下記エラーになります。

Can't load '/usr/home/USERNAME/perl/lib/i386-freebsd/auto/XML/Parser/Expat/Expat.so' for module XML::Parser::Expat: Shared object "libexpat.so.6" not found, required by "Expat.so" at /usr/…/DynaLoader.pm line 169. at /usr/home/USERNAME/perl/lib/i386-freebsd/XML/Parser.pm line 14

「DynaLoader.pm」は、システムのperlライブラリを参照してるようです。
もちろん-Iオプションで、
インストールしたライブラリパスを指定しています。

インストールは下記要領で、Expat-2.0.0からインストールしました。

<Expatのインストール>
> ./configure --prefix=/usr/home/USERNAME/perl/lib
> make
> make install

<XML::Parserのインストール>
> perl Makefile.PL LIB=/usr/home/USERNAME/perl/lib EXPATLIBPATH=/usr/home/USERNAME/perl/lib/lib EXPATINCPATH=/usr/home/USERNAME/perl/lib/include INSTALLMAN1DIR=/usr/home/USERNAME/perl/lib/man1/ INSTALLMAN3DIR=/usr/home/USERNAME/perl/lib/man3/
> make
> make install

気になるのが、Expatのconfigure実行後のMakefileで、
 ifndef INSTALL_ROOT
 INSTALL_ROOT=$(DESTDIR)
 endif
この部分がmake時にエラーになるのでコメントアウトしたことです。
INSTALL_ROOTは、--prefixで指定したディレクトリの前に付けて
使用しているので、無くて問題ないと判断したのですが…。

Expatのインストールに問題がある。というのは何となく分かるのですが、
どうすれば良いのかが分かりません。m(__)m
perl 5.003です。

A 回答 (1件)

> Shared object "libexpat.so.6" not found


――と言われているので、libexpat.so.6が存在するか確認してみては。
なかったら別途インストール。存在するがライブラリ検索パス上になければ、ldconfig。ライブラリ検索パスに存在している場合は、パーミッション等を確認など行う必要があります。

この回答への補足

回答ありがとうございます。
libexpat.so.6存在し、パーミッションは755でした。
use lib で、指定してもダメでした。
ldconfigというのは…、勉強してみます。

補足日時:2006/02/18 21:06
    • good
    • 0
この回答へのお礼

Expatを、2.0.0から 1.95.8に落としたら成功しました。
お騒がせしました。

お礼日時:2006/02/20 14:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!