日経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が揃ってました。こっちをリビルドすれば良かったかも…