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です。