質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.78%

Algorithm-SVMLightのインストール

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,614

score 7

http://perl-users.jp/articles/advent-calendar/2009/casual/16.html
上サイトを参考にAlgorithm-SVMLight-0.09をインストールしようとしているのですが、
perl Build testを行った際にテストが失敗し、以下のようなエラーが出てしまいます。
エラーの理由を教えてください

#   Failed test 'use Algorithm::SVMLight;'
#   at t/01-basic.t line 5.
#     Tried to use 'Algorithm::SVMLight'.
#     Error:  Perl API version v5.16.0 of CODE(0x7f92620639f0) does not match v5.18.0 at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 217.
# Compilation failed in require at (eval 4) line 2.
# BEGIN failed--compilation aborted at (eval 4) line 2.
Can't locate object method "_xs_init" via package "Algorithm::SVMLight" at /users/sugimotonoriya/Algorithm-SVMLight-0.09/blib/lib/Algorithm/SVMLight.pm line 20.
# Looks like you planned 28 tests but ran 1.
# Looks like you failed 1 test of 1 run.
# Looks like your test exited with 255 just after 1.
t/01-basic.t ... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 28/28 subtests 
t/02-custom.t .. Failed 4/4 subtests 

Test Summary Report
-------------------
t/01-basic.t (Wstat: 65280 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 28 tests but ran 1.
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • argius

    2015/09/20 12:39

    すみません、有効な情報は得られませんでした。
    強引にCPANでインストールさせてはみましたが、正しく動作するかどうかが分かりません。
    こちらの環境もOSX 10.10.5, Perl v5.18.2です。

    キャンセル

  • notice2

    2015/09/20 14:45

    強引にCPANでインストールというのはどのようにされましたでしょうか。
    やり方を教えていただけませんか

    キャンセル

  • argius

    2015/09/20 14:55

    分かりました。ここだと読みにくい&書きにくいので、あとでまとめて回答欄に記載します。

    キャンセル

回答 1

checkベストアンサー

0

ビルドする方法は分からなかったので、CPANでインストールする方法を書きます。
これでも上手くいくかどうか分かりませんが...


1. http://perl-users.jp/articles/advent-calendar/2009/casual/16.html
の、perl Buildまで実行しておく。ldconfigは無視。
svm_learn.hsvm_common.h/usr/local/include/svm_light/にある状態にする。

2. ビルドしたlibsvmlight.soを、dylibにして/usr/local/lib/にコピー。
$ cp -ip libsvmlight.so /usr/local/lib/libsvmlight.dylib

3. suにスイッチ
$ sudo su -

4. 環境変数を設定
$ export C_INCLUDE_PATH=/usr/local/include/svm_light:${C_INCLUDE_PATH}
$ export LIBRARY_PATH=/usr/local/lib:${LIBRARY_PATH}
$ export DYLD_LIBRARY_PATH=/usr/local/lib:${DYLD_LIBRARY_PATH}

5. CPANでインストール

$ cpan install Algorithm::SVMLight



環境変数のところは少しあやふやです。
ポイントは、CPANでもlibsvmlight.dylib,svm_learn.h,svm_common.hが見つからないエラーになるのでそれを設定するところと、最後にライブラリーを置く場所の権限に特権が必要なところです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/20 15:47

    返信ありがとうございます。
    この方法でインストールした後、目的のプログラムを動かそうとしたところ以下のエラーが出てしまいました。
    perlのversion的にalgorithm svn-lightに対応していないということでしょうか?

    Perl API version v5.16.0 of does not match v5.18.0 at /System/Library/Perl/5.18/darwin-thread-multi-2level/DynaLoader.pm line 217.
    Compilation failed in require at maketrain.pl line 8.
    BEGIN failed--compilation aborted at maketrain.pl line 8.

    キャンセル

  • 2015/09/20 16:55

    そうですね、私もこの辺は詳しくない(C言語インターフェイスの部分)ので、はっきりしたことは申し上げられないのですが、インターフェイスのバイナリー互換性の問題のようです。

    試していないのですが、perlbrewというツールでPerlを5.16にしてみると動くかもしれませんね。

    perlbrewで構築するモダンなPerl環境 | シーズクリエイターズブログ
    https://www.seeds-std.co.jp/seedsblog/611.html

    キャンセル

  • 2015/09/21 22:30

    回答ありがとうございます。
    試してみます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る