04/03 kakasiがcan not use EUC-JP or UTF-8 encoding on iconvでビルドできないエラーと対策

メールをbsfilterでフィルタリングしているのだけど,このところ同じようなSPAMメールが毎日何件も来るようになった.そこでbsfilterの動きをチェックしたらkakasiが入ってないことが判明.去年,サーバーを移転した時に入れるのを忘れたみたいだ.

bsfilterはベイズ統計を使ってSPAMかHAMかを判定する日本製フィルター.kakasiは日本語を分かち書きにするツールで,まずはメールを分かち書きにし,出てくる単語とその頻度から判定する.

そこでkakasiをインストールする

wget http://kakasi.namazu.org/stable/kakasi-2.3.6.tar.gz 
gzip -dc kakasi-2.3.5.tar.gz | tar xvf -
% cd kakasi-2.3.5
% ./configure

ところがここで

configure: error: can not use EUC-JP or UTF-8 encoding on iconv

というエラーを出してconfigureが終わってしまう.config.logには

undefined reference to `libiconv'
undefined reference to `libiconv_open'
undefined reference to `libiconv_close'

と残っている.さらに調べたところ

PHP5がビルドできない。libiconvが原因のようだ。→ 解決。

というブログを発見.そのリンク先

glibcを使うかlibiconvを使うかの判定処理が2系統あるのですが、一方がiconv.hをサーチして判定する処理になっており、しかも/usr/local/includeが最初にサーチされるようになっていました。で。ここに、libiconvと一緒にインストールされたiconv.hが残ってたんですね(笑)。

つまり、/usr/local/include/iconv.hを削除することで誤判定がなくなり、見事解決しました。

https://oshiete.goo.ne.jp/qa/2149566.html

ということ.記事はPHPについてだけど,エラーメッセージが同じなので同じ原因と考えて良いだろう.

su
mv /usr/local/include/iconv.h /usr/local/include/_iconv.h
./configure
make
make install

とやって無事にkakasiのインストールが終了.

ここで試しにkakasiのINSTALL-jaを変換してみる.

cat INSTALL-ja | nkf
基本的なインストール方法
========================
以下に記したのは、一般的なインストールの方法です。

たとえば-wオプションで分かち書き,-outf8でutf8出力を指定すると

cat INSTALL-ja | kakasi -w -outf8
基本的 な インストール 方法
========================

以下に 記し たのは 、 一般的 な インストール の 方法 です 。

-JHを付けるとひらがなに変換する.

cat INSTALL-ja | kakasi -JH -outf8
きほんてきなインストールほうほう
========================

いかにしるしたのは、いっぱんてきなインストールのほうほうです。

コメントを残す

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

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください