- 締切済み
Expat.soが読めない!?
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です。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- osamuy
- ベストアンサー率42% (1231/2878)
> Shared object "libexpat.so.6" not found ――と言われているので、libexpat.so.6が存在するか確認してみては。 なかったら別途インストール。存在するがライブラリ検索パス上になければ、ldconfig。ライブラリ検索パスに存在している場合は、パーミッション等を確認など行う必要があります。
お礼
Expatを、2.0.0から 1.95.8に落としたら成功しました。 お騒がせしました。
補足
回答ありがとうございます。 libexpat.so.6存在し、パーミッションは755でした。 use lib で、指定してもダメでした。 ldconfigというのは…、勉強してみます。