CerntOS5 64bit環境にText::MeCabを導入するとmake testが通らない件

 日経Linuxの2008/2月号の特集を見ながら、SpamAssasinを導入する経過で、MeCabという形態素解析エンジンを利用するCPANモジュールText::MeCabを入れる段でつまづきました。makeやmake testが通らない。どうも64bit環境であることが問題っぽい。

 以下に解決法を書いておきます。

cpan -fi Text::MeCab

をしてエラーになった後で、/root/.cpan/build/Text-MeCab-0.20001に移動します。そこにあるMakefile.PLを編集し、

my %INFO = (
    ABSTRACT     => ‘Alternative Interface To libmecab’,
    AUTHOR       => ‘Daisuke Maki <daisuke@endeworks.jp>’,
    CCFLAGS      => $result->{cflags},
    DEFINE       => join( ” “, @define ),
    DISTNAME     => ‘Text-MeCab’,
    INSTALLDIRS  => ‘site’,
    LIBS         => mecab-config --libs,
    NAME         => ‘Text::MeCab’,
    OBJECT       => ‘$(O_FILES)’,
    PREREQ_PM    => {
    LD           => mecab-config --cxx,
    INC          => mecab-config --cflags,

てな感じで書き換えます。下2行は丸ごと追加です。後半の括りはアポストロフィではない点に注意。/usr/bin/mecab-configコマンドをパラメーター付きで実行して、その結果を渡してる訳ですね。

 一応これでmakeもmake testも通って、無事make installした訳ですが、その前に以下も試してますので、一応書いておきます。もし上記だけでダメならお試し下さい。

 mecab-0.96とmecab-ipadic-2.7.0-2007080をコンパイルする時に、64bit環境であることを明示します。

LDFLAGS=’-m64′
CFLAGS=’-m64′
CPPFLAGS=’-m64′
CXXFLAGS=’-m64′
export LDFLAGS CFLAGS CPPFLAGS CXXFLAGS

で、./configureは元記事ではファイルパスを細かく指定してたのを、シンプルに

./configure –with-charset=utf8  (mecabの時)

./configure –with-mecab-config=/usr/bin/mecab-config –with-charset=utf8 (mecab-ipadicの時)

だけにしてみました。

 ググっていくつものページを参考にしたんですが、もう色々見過ぎてとてもまとめられないので、個別リンクはご勘弁下さいませ。それぞれを執筆された方、本当にありがとうございました。

追記:

 んが、ここにsrpmが揃ってました。こっちをリビルドすれば良かったかも…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)