wiki:インストール解説

日本語対応SpamAssassinのインストール

はじめに

本ページでの説明では、日本SpamAssassinユーザ会で出されている日本語対応ベイジアンの修正を加えますので、SpamAssassin はアーカイブ(圧縮ファイル)からインストールを行います。従って cpan を使っての Mail::SpamAssassin のインストールは行いませんので注意してください。

perl モジュールのインストール

モジュールのインストールは、一回失敗しても、強制終了して再度トライすると、うまく行く場合があります。ねちっこくがんばりましょう。

cygwin のショートカットを実行して、コマンドプロンプトを開きます。

$ cd
$ perl -MCPAN -e shell 

として、CPAN を起動します。いろいろと聞かれると思いますが、ほとんどリターンでやり過します。ただし、

Your terminal expects ISO-8859-1 (Yes/no)? [yes] no

と聞かれる場面では、"no" を入力します。

途中で、CPAN site を尋ねられるので、 http://www.cpan.org/SITES.html から、どれかをピックアップして入力します。

Please enter your CPAN site: [] ftp://....
Enter another URL or RETURN to quit: [] http://....
Enter another URL or RETURN to quit: []

いくつか候補を入力しておきましょう。ルータの設定で一部ポートを遮断しているため ftp が利用できない環境では、http: のサイトを選択して入力すると良いでしょう。 Proxy(プロキシ)を設定している等の事情が無い限りは、残りをデフォルトのまま進めます。わからなくても、それとなく英語のメッセージには目を通して対処してください。 うまく行くと

cpan>

と表示されるようになりますので、

cpan> install Digest::SHA1

とします。どどーっと見慣れないメッセージが表示されますが、相当いろいろやってくれます。コンパイルやら稼動テストやらをゴニョゴニョやるので、とにかく長いです。めげずに以下のモジュールを入手して下さい。尚、途中で何か尋ねられたら「リターン」キーを押してやり過ごします。途中、died wainting for dll loading, というエラーがでる場合は、強制的い中断して、コントロールパネル・システム・詳細の環境変数 path=C:\Perl\bin;C:\Perl\site\bin;...となっている部分を、後半に回すようにしてから(path=...;C:\Perl\bin;C:\Perl\site\bin;)もう一度実行してみてください。一応、こんな 情報もあります。無駄のような気もしますが、駄目なら試してみてください。根拠はありませんが、cpan の実行は、ホームディレクトリ上で行った方がトラブルがないかもしれません。

cpan> install HTML::Parser
cpan> install MIME::Base64
cpan> install DB_File
cpan> install Net::DNS
cpan> install Net::SMTP
cpan> install Mail::SPF            # 念のためインストールしますが、失敗しても気にしないですすめます。
cpan> install Mail::SPF::Query     # 困った、テストが通りません・・・。
cpan> install IP::Country::Fast    
cpan> install Net::Ident           #インストールに失敗します(不要)。
cpan> install IO::Socket::INET6    #IPV6環境であればインストールに成功するかも?(不要)
cpan> install IO::Socket::SSL      #インストールに失敗するくさい
cpan> install Time::HiRes
cpan> install Mail::DKIM
cpan> install Mail::DomainKeys     #消え行く定め(不要)
cpan> install LWP
cpan> install HTTP::Date

ここで中断して、caldixを稲葉さんのところからダウンロードしてインストール(実行)します。圧縮関連のDLLを入れます。

cpan> install IO::Zlib
cpan> install Archive::Tar
cpan> exit

SpamAssassin 日本語パッチのチェック

日本語パッチを  日本SpamAssassinユーザ会/パッチで、チェックします。ここでは、SpamAssassin? 3.2系列の日本語対応パッチを取り上げます。この中にあるバージョンをメモしてください。 同バージョンのダウンロード

仮に 3.2.5 であった場合には、同じバージョンのSpamAssassin spamassassin distributions からダウンロードします。保存先は、CygWin をインストールしたフォルダ下に存在する /usr/src とします(C:\CygWin? にインストールした場合、C:\cygwin\usr\src と等価です)。CygWin のショートカットを実行して、コマンドプロンプトを起動します。そして、以下のように実行してください。

バージョンは、状況に応じて読み替えてください

$ cd  /usr/src
$ tar  xvf  Mail-SpamAssassin-3.2.5.tar.gz
$ cd Mail-SpamAssassin-3.2.5

これで、Mail-SpamAssassin-3.2.5 というフォルダが /usr/src 下に展開されます。 日本語パッチ適応

次に日本語パッチを  日本SpamAssassinユーザ会/パッチから入手します。マウスの右ボタンを駆使して、以下の3つをダウンロードします。

    * spamassassin-3.2.5-ja-test1.txt
    * spamassassin-3.2.5-ja-test1.patch
    * tokenizer.pre 

保存先は、今度は /usr/src/Mail-SpamAssassin-3.2.5 下(C:\cygwin にインストールした場合、C:\cygwin\usr\src\mail-spamassassin-3.2.5 と等価です)です。ダウンロードしたら、

$ cd Mail-SpamAssassin-3.2.5
$ ptach -p1 < spamassassin-3.2.5-ja-test1.patch

とタイプして、修正を加えます。ブラウザに IE を使用している場合には、"そんなファイルねーよ"と怒られるかと思います。これは、MIME タイプ TXT つまり、テキストファイルの拡張子は、.txt に決まってるよと、勝手に IE がファイル名を変更するためで、この場合には、

$ mv  spamassassin-3.2.5-ja-test1.patch.txt  spamassassin-3.2.5-ja-test1.patch
$ mv  tokenizer.pre.txt  tokenizer.pre

としてから再度 patch を実行してみてください。尚、拡張子については予測できませんので、2番目の tokenizer.pre.txt は、ちゃんと tokenizer.pre として保存されている場合も考えられます。

それでも途中でエラーになってしまうよ!という方は、gnu-patch のバージョンが古いためで、新しいバージョンを入手してください。ちゃんと、CygWin のインストールで、patch を選択していれば、こんな事にはならないと思います。 インストール

またしても、CPAN の登場です。

$ perl  -MCPAN -e shell

として、追加でインストール作業を行います。途中、少々失敗しても気にしないで進めます。

cpan> install ExtUtils::ParseXS
cpan> install ExtUtils::CBuilder
cpan> install Module::Build
cpan> install Test::More
cpan> install Data::Dump
cpan> install Encode::Detect
cpan> exit

そして、ようやく SpamAssassin? 本体のインストール作業に入ります。

$ perl  makefile.pl

とタイプします。すると、メール管理者のEメールアドレスを聞かれるので、ご自分のメール管理者宛てのアドレスを入力します。以下のような感じです。

default text : [the administrator of that system] root@yourhost.local

次に

$ make

とタイプします。そして

$ make  install

とタイプします。ここまで来れば、もう二息というところでしょうか…。ウィンドウズのエディタで、tokenizer.pre を開き下記のように修正し保存します。(MeCab?は形態素解析を行うモジュールで、日本語を名詞・助詞・品詞・動詞・・・等に分解します。ベイジアンにかけるなら、厳密に解析した方が良いに決まっている!という予想を裏切って、SimpleJAの方が、成績が若干良いというショッキングなレポートもあるぐらいなので、心配する事はありません)

# Tokenizer::SimpleJA                                         
#                                                             
loadplugin Mail::SpamAssassin::Plugin::Tokenizer::SimpleJA    
                                                              
# Tokenizer::MeCab                                            
#                                                             
#loadplugin Mail::SpamAssassin::Plugin::Tokenizer::MeCab      

そして、

$ cp  tokenizer.pre  /etc/mail/spamassassin

とタイプします。ウィンドウズのエディタで、/etc/mail/spamassassin/local.cf (C:\cygwin にインストールした場合、C:\cygwin\etc\mail\spamassassin\local.cf に等価です) を開き、下記の数行を追加し保存します(追加する行位置は、どこでもOKです)。

#-----------------------------------------------------
# Enable UTF-8 rule
#
normalize_charset 1
#-----------------------------------------------------
# Rewrite Header, if spam.
#  This option is useful for Outlook Express.
#
rewrite_header Subject *****SPAM*****
#-----------------------------------------------------
# Disable Auto-WhiteList.
#  FROM is lie.
#
use_auto_whitelist 0
# auto_whitelist_path      /var/spamassassin/auto-whitelist
# auto_whitelist_file_mode 0666
#-----------------------------------------------------
# Set bayes file path and file mode.
#
bayes_path      /var/spamassassin/bayes
bayes_file_mode 0666

テストで、

$ spamassassin  --lint

を実行してみてください。何事も無く終了します。おめでとう!これで、大まかにはインストールが完成です。せっかくなので、サンプルとして付属するスパムメールとハムメールをデバッグモードで料理してみましょう。

$ spamassassin -D < sample-spam.txt
$ spamassassin -D < sample-nonspam.txt

最後に spamd をサービス化しましょう。

$  cygrunsrv  --install  SpamDaemon  --path  /bin/spamd