Algorithm::SVMLightのインストール

基本的に「Algorithm::SVMLight をインストールして使ってみよう」でいけるが、

perl Build test

で次のようなエラーがでる。

perl Build test
t/01-basic.t ... 1/28
# Failed test 'use Algorithm::SVMLight;'
# at t/01-basic.t line 5.
# Tried to use 'Algorithm::SVMLight'.
# Error: Can't load '/root/install/Algorithm-SVMLight-0.09/blib/arch/auto/Algorithm/SVMLight/SVMLight.so' for module Algorithm::SVMLight: libsvmlight.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.

それをこの記事のようにパスを通す(?)とうまくいった。

具体的には、/etc/ld.so.confに次の一行を追加

/root/install/svm_light

そしてスーパーユーザで

ldconfig

ちなみに、/root/install/svm_lightというパスは、「Algorithm::SVMLight をインストールして使ってみよう」の記事でいうところの

% mkdir ./svm_light

絶対パス


ちなみに、実際に使うとまた別のエラーがでた。

Can't load '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Algorithm/SVMLight/SVMLight.so' for module Algorithm::SVMLight: libsvmlight.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230.
at test_svmlight.pl line 3
Compilation failed in require at test_svmlight.pl line 3.
BEGIN failed--compilation aborted at test_svmlight.pl line 3.

Algorithm::SVMLightが使われるperlを実行したユーザの権限不足に起因してるっぽい。
参考:http://blog.netandfield.com/shar/2010/01/post-659.html

自分の場合は/root/install/svm_lightという奇妙な場所にインストールしてしまっていたらしく、/root以下全てに755の権限を与えるという暴挙を振るうことで解決。