PantherへのPOPFile 0.20.1(+日本語パッチ)導入手順(暫定版)

PantherPOPFile 0.20.1を導入するまでの手順をまとめたもの。私の環境では以下の手順で動作させることができたが、あくまで「私の環境では」の話であり、他の環境でもうまくいくかどうかは保証できない。このドキュメントを参考にしてインストールを行い、何か支障が起こったとしても、それは自己責任で対処していただきたい。
基本的に、Running POPFile 0.2.x on Mac OS Xの流れにあわせて、日本語対応をさせるのに必要な手順を加えて日本語化したような感じ。また、Terminalでの操作にある程度慣れていることを前提としており、上記サイトの日本語訳ではない。

POPFileとは?

POPFileについては、クリックすればキーワードが見れるので、省略。
このドキュメントは、POPFile 0.20.xをMac OS X 10.3(Panther)以降で動作させるための手順を示したもので、私は、POPFile 0.20.1+日本語パッチをMac OS X 10.3.1上で動作させている。
POPFile 0.20.xをMac OS X 10.2.x(Jaguar)で動作させる場合、このままの手順ではうまくいかない。JaguarにインストールされたPerlのバージョンが5.6であり、日本語対応に必要なモジュール(Encode)が動作しないからだ。この場合、3つのアプローチがあり、ひとつはPerlをバージョンアップ(5.7.3以降)すること、もうひとつはEncodeを使わず、Jcodeやjcode.plを使用するようにソースを修正すること、最後のひとつは旧バージョン(0.19.1+日本語パッチ)を使うことだ。今回のドキュメントでは、Pantherでの動作を目標としているため、Jaguarでの導入手順には触れない。JaguarPOPFile 0.19.1の導入については、前に書いた、「POPFileでメールを振り分け」が参考になるかもしれない。

ダウンロードする

POPFileの導入のためには、いろいろと必要なものがある。まず、これらをダウンロードする。ダウンロードしたファイルは、適当なフォルダを作ってまとめて入れておく。

POPFileの動作に必要なモジュールをビルドするために、開発ツールをインストールする必要がある。開発ツールはPantherのパッケージの4枚目のCD(Mac OS X Xcode Toolsと書いてある)に入っている。Running POPFile 0.2.x on Mac OS Xによれば、「Developer Tools Software」と「Mac OS X SDK」と「BSD SDK」だけインストールすればいいようだ。このあたりはディスクの残り容量と相談して選ぶことになると思う。

popfile.sourceforge.netより、クロスプラットフォーム版をダウンロードする。
加えて、0.20.0あるいは0.20.1には、日本語のメールの振り分けがうまくいかないというバグがあるため、sourceforge.jpよりパッチもあわせてダウンロードしておく。

Pantherには、バージョン2.29が含まれているので、特にダウンロードの必要はない)
CPANより、MIME-Base64モジュールをダウンロードする。パールモジュールについては、このように普通にダウンロードしてもいいし、「perl -MCPAN -e shell」でCPANのシェル(?)を呼び出し、「install MIME::Base64」としてもよい。

  • Berkeley DB

POPFile 0.20.0より、corpus(学習したデータのこと)をデータベースに保存するようになったので(0.19.1まではテキストファイルだった)、Berkeley DBというデータベースソフトをインストールする必要がある。
ダウンロードページより、Berkeley DBをダウンロードする。「b cryptography」というものの有無が選べるが、どちらでも特に問題ないらしい。うちでは、上の「WITH b cryptography」の方を選んだ。

  • BerkeleyDBパールモジュール

上でダウンロードしたBerkeley DBをPerlから使用するために必要なもの。
CPANより、BerkeleyDBモジュールをダウンロードする。

日本語は、英語と違って単語と単語の切れ目を判断するのが難しい。この切れ目の判断(分かち書き)をするために、Kakasiを利用する。
KAKASI - 漢字→かな(ローマ字)変換プログラムより、ソースコード(辞書付き)をダウンロードする。

  • Text-Kakasiパールモジュール

KakasiPerlから使用するためのモジュール。
CPANより、Text-Kakasiモジュールをダウンロードする。

  • Encodeパールモジュール

Pantherには、バージョン1.97が含まれているので、特にダウンロードの必要はない)
日本語の文字コード変換のために使用されるモジュール。
CPANより、Encodeモジュールをダウンロードする。

インストールの準備

  • インストール先のフォルダを作る

Running POPFile 0.2.x on Mac OS Xでは、/Library/にPOPFileというフォルダを作成しているが、これは別にどこでもいい。うちでは、~/work/popfile-0.20.1/にインストールして、ユーザの権限で動かしている。お好みで設定(/Library/POPFile/にインストールして管理者権限で動かすと、POPFile Controlがうまく動いたのでその方がいいかもしれない)。

  • ダウンロードしたファイルの展開

ダウンロード後に自動的に展開されていれば特に気にする必要はない。作業がしやすいように、同じフォルダに展開しておくのがおすすめ。
フォルダ名は、親フォルダなども含めて、すべて半角英数字のみになるようにしておいたほうがいい。

  • POPFileの旧バージョンをインストールしている場合は停止させる

POPFileのUIにブラウザでアクセスしてPOPFileを停止させる。無用なトラブルを避けるため、この時点で他のソフトウェアも不要なものは停止させておいた方がいいかも知れない。

インストール

上記でダウンロードしたファイルを順にインストールする。インストールは、基本的にTerminalでの作業となる。Terminalを起動して、「cd (スペース)」と入力し、これから作業したいフォルダをTerminalのウィンドウにドラッグ&ドロップするとそのフォルダへのパスが表示される。ここでEnterを押すと、そのフォルダへ移動して作業することができる。

  • Apple Developer Toolsのインストール

まず最初に開発ツール(Xcode Tools)をインストールしておく。これをインストールしていないと、その後の作業がすべて失敗することになるので注意。

  • MIME-Base64パールモジュールのインストール

Pantherには含まれているので、必要ない)
Terminalを起動して、MIME-Base64モジュールを展開したフォルダに移動する。そして、

perl Makefile.PL
make
sudo make install
(管理者パスワードを入力)

でインストールする。

  • Berkeley DBのインストール

Terminalで、Berkeley DBを展開したフォルダ(db-4.1.25とかいうフォルダ)に移動する。そして

cd build_unix
../dist/configure
make
sudo make install
(管理者パスワードを入力)

でインストールする。

  • BerkeleyDBパールモジュールのインストール

BerkeleyDBモジュールをインストールする前に、若干下準備をしておく必要がある。これは、(なぜか)Berkeley DBのインストールされる場所が、BerkeleyDBモジュールで指定(想定)している場所と異なっているため。
下準備にはいくつか方法があるのでどの方法をとってもよい。

cd /usr/local/
ln -s BerkeleyDB.4.1 BerkeleyDB

こうすることにより、BerkeleyDBのバージョンによらず、同じ場所を指定すればいいようになる。将来性を考えればこの方法かもしれない。

  • config.inを書き換える

BerkeleyDBモジュールを展開したフォルダに、「config.in」というファイルがあるので、これをテキストエディタなどで開いて修正する。
「#INCLUDE = /usr/local/BerkeleyDB/include」「#LIB = /usr/local/BerkeleyDB/lib」という行があるので、それぞれ先頭の「#(コメントの印)」をとり、「BerkeleyDB」の部分を「BerkeleyDB.4.1」に修正する。また、それぞれの下の方に「#」がない行が存在しているので、ここに「#」をつけてコメントアウトする。

Terminalで、BerkeleyDBモジュールを展開したフォルダ(BerkeleyDB-0.25とかいうフォルダ)に移動する。そして、MIME-Base64モジュールと同じように、

perl Makefile.PL
make
sudo make install
(管理者パスワードを入力)

でインストール。パールモジュールのインストール方法はいつもこのやり方になるので、覚えておくと便利かもしれない。

(旧バージョンをインストールしている場合はこの作業は必要ない)
Terminalで、Kakasiを展開したフォルダ(kakasi-2.3.4とかいうフォルダ)に移動する。そして、

./configure --host=powerpc-apple-bsd
make
sudo make install
(管理者パスワードを入力)

でインストール。「--host=...」の部分を入れないとエラーが発生するので注意。

  • Text-Kakasiパールモジュールのインストール

(旧バージョンをインストールしている場合はこの作業は必要ない)
Terminalで、Text-Kakasiモジュールを展開したフォルダ(Text-Kakasi-1.04とかいうフォルダ)に移動する。
そして、

perl Makefile.PL
make
sudo make install
(管理者パスワードを入力)

でインストール。

  • Encodeパールモジュールのインストール

Pantherには含まれているので、必要ない)
Terminalで、Encodeモジュールを展開したフォルダ(Encode-1.98とかいうフォルダ)に移動する。
そして、

perl Makefile.PL
make
sudo make install
(管理者パスワードを入力)

でインストール。

ここまでエラーなくくることができたら、POPFileを動かすための準備ができた。
まず、POPFileのClassifierフォルダにあるBayes.pmを、日本語パッチの中のPOPFile/0.20.1/Classifier/Bayes.pmで置き換える。
そして、先に作っておいたインストール先フォルダにすべてコピーする。

POPFileをインストールしたフォルダに移動して、

perl popfile.pl

で動作確認をする。もしエラーが出る場合は、エラーの内容を読んで原因を調べ、上記のどれかの作業を確認することになる。

POPFileを管理者権限ではなく、ユーザ権限で動作させたい場合は下準備が必要になる(そのまま動かそうとすると、「Couldn't start the pop3 proxy because POPFile could not bind to the listen port 110」というエラーメッセージが表示される)。
この場合、POP3プロキシとして動作するポートを変更することによって問題を回避することができる。POPFileをインストールしたフォルダにある「popfile.cfg」を開き、「pop3_port 110」と書かれた行を探し、「110」を「20110」などに修正する。

起動時にPOPFileが起動されるようにする

POPFileは、POP3プロキシとして常に起動させておく必要がある(正確には、メールをチェックするときに起動している必要がある)ので、起動時に自動的に起動するようにした方が便利だ。
これには、POPFile StartupPOPFile Controlを利用するのが楽だ。
うちでは、POPFile Startupのソースを参考に、AppleScriptで単に起動させるだけのアプレットを作って使っている。
Running POPFile 0.2.x on Mac OS Xで書かれている方法も含め、いろいろなやり方があるので、これもお好みで。

POPFileの設定を変更する

POPFileが起動している間に、ブラウザでhttp://127.0.0.1:8080/にアクセスして設定を変更することができる。
スパムと普通のメールを学習させる場合も、このインタフェースを使う。
設定方法については、POPFile ドキュメンテーションを参照のこと。

メールソフトの設定

POPFile経由でメールを受信するように、メールソフトの設定を変更する必要がある(メールサーバ→POPFile→メールソフトの流れで受信するようになるわけ)。設定方法についてはメールソフトによって違うので何ともいえないが、基本は、アカウントを「元のPOP3サーバ:元のアカウント」にすることと、POP3サーバを「127.0.0.1」にすること(ユーザ権限で動作させるためにPOP3プロキシのポートを変更した場合は、それもあわせて変更する。Postinoの場合は、POP3サーバを「127.0.0.1:指定したポート」とすればよい。)。

長くなったので、今回はこのあたりで終了。間違っているところや、わかりにくい箇所などがありましたら、つっこんでください(汗)。