Modified: 18 August 2004
必要環境のチェック
インストール時の注意
FedoraCore2のインストール時には、「Perlの開発環境」はインストールが必要です。
Perlのチェック
POPFileは、"perl 5.7.3" 以降のバージョンが必須だそうです。
以下のように、"perl -v" で確認してください。
# perl -v
This is perl, v5.8.3 built for i386-linux-thread-multi
Copyright 1987-2003, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'. If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.#
ダウンロード
以下からダウンロードします。Linux版は、「POPFile Cross Platform」をダウンロードします。
http://sourceforge.net/projects/popfile
2004年8月19日時点で、"popfile-0.21.2.zip" がダウンロードできました。
さらに、日本語パッチをダウンロードします。
http://sourceforge.jp/projects/popfile/files
2004年8月19日時点で、"popfile_jpn.zip" がダウンロードできました。
必ず、リリースノートを読んで、POPFileのバージョンに対応したものをダウンロードします。
Perlの確認
以下の5つのモジュール
- MIME::Base64
- MIME::QuotedPrint
- Text::Kakasi
- Encode
- BerkeleyDB
のインストールを確認します。
$ perl -MMIME::Base64 -e 'print $MIME::Base64::VERSION'
2.21
$ perl -MMIME::QuotedPrint -e 'print $MIME::QuotedPrint::VERSION'
2.21
$ perl -MText::Kakasi -e 'print $Text::Kakasi::VERSION'
1.05
$ perl -MEncode -e 'print $Encode::VERSION'
1.99
$ perl -MBerkeleyDB -e 'print $BerkeleyDB::VERSION'
Can't locate BerkeleyDB.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .).
BEGIN failed--compilation aborted.
$
"BerkeleyDB"のインストール
私の環境下では、"BerkeleyDB" がインストールされていないようです。インストールされていない場合、以下からダウンロードできます。"BerkeleyDB"で検索して探します。
http://search.cpan.org以下、"BerkeleyDB" の説明をしますが、他のモジュールが足らない場合も同様の手順で可能です。
"BerkeleyDB"のダウンロード
"BerkeleyDB"を検索してみると、2004年8月18日時点で、"BerkeleyDB-0.25" がダウンロードできました。
"BerkeleyDB"のインストール
# tar zxvf BerkeleyDB-0.25.tar.gz : # cd BerkeleyDB-0.25 # perl Makefile.PL Parsing config.in... Looks Good. Checking if your kit is complete... Looks good Writing Makefile for BerkeleyDB # make cp BerkeleyDB.pm blib/lib/BerkeleyDB.pm AutoSplitting blib/lib/BerkeleyDB.pm (blib/lib/auto/BerkeleyDB) cp BerkeleyDB.pod blib/lib/BerkeleyDB.pod cp BerkeleyDB/Btree.pm blib/lib/BerkeleyDB/Btree.pm cp BerkeleyDB/Hash.pm blib/lib/BerkeleyDB/Hash.pm /usr/bin/perl /usr/lib/perl5/5.8.1/ExtUtils/xsubpp -noprototypes -typemap /usr/lib/perl5/5.8.1/ExtUtils/typemap -typemap typemap BerkeleyDB.xs > BerkeleyDB.xsc && mv BerkeleyDB.xsc BerkeleyDB.c gcc -c -I./libraries/4.2.41/include -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -march=i386 -mcpu=i686 -DVERSION=\"0.25\" -DXS_VERSION=\"0.25\" -fPIC "-I/usr/lib/perl5/5.8.1/i386-linux-thread-multi/CORE" BerkeleyDB.c Running Mkbootstrap for BerkeleyDB () chmod 644 BerkeleyDB.bs rm -f blib/arch/auto/BerkeleyDB/BerkeleyDB.so LD_RUN_PATH="/usr/lib" gcc -shared -L/usr/local/lib BerkeleyDB.o -o blib/arch/auto/BerkeleyDB/BerkeleyDB.so -ldb chmod 755 blib/arch/auto/BerkeleyDB/BerkeleyDB.so cp BerkeleyDB.bs blib/arch/auto/BerkeleyDB/BerkeleyDB.bs chmod 644 blib/arch/auto/BerkeleyDB/BerkeleyDB.bs Manifying blib/man3/BerkeleyDB.3pm # LANG=C # make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/btree........ok t/db-3.0.......ok t/db-3.1.......ok t/db-3.2.......ok t/db-3.3.......ok t/destroy......ok t/encrypt......ok t/env..........ok t/examples.....ok t/examples3....ok t/filter.......ok t/hash.........ok t/join.........ok t/mldbm........skipped all skipped: MLDBM is not installed on this system. t/queue........ok t/recno........ok t/strict.......ok t/subdb........ok t/txn..........ok t/unknown......ok All tests successful, 1 test skipped. Files=20, Tests=1414, 25 wallclock secs (14.38 cusr + 3.10 csys = 17.48 CPU) # make install Installing /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi/auto/BerkeleyDB/BerkeleyDB.so Installing /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi/auto/BerkeleyDB/BerkeleyDB.bs Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi/BerkeleyDB.pm Installing /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi/BerkeleyDB.pod Installing /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi/auto/BerkeleyDB/autosplit.ix Installing /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi/BerkeleyDB/Btree.pm Installing /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi/BerkeleyDB/Hash.pm Installing /usr/share/man/man3/BerkeleyDB.3pm Writing /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi/auto/BerkeleyDB/.packlist Appending installation info to /usr/lib/perl5/5.8.1/i386-linux-thread-multi/perllocal.pod #
モジュール("BerkeleyDB" )のインストールを確認します。
$ perl -MBerkeleyDB -e 'print $BerkeleyDB::VERSION'
0.25
$
"DBD/SQLite"のインストール
以下からダウンロードして、インストールします。
http://search.cpan.org/dist/DBD-SQLite/
# tar zxvf DBD-SQLite-1.03.tar.gz : # cd DBD-SQLite-1.03 # perl Makefile.PL Checking if your kit is complete... Looks good Using DBI 1.40 (for perl 5.008003 on i386-linux-thread-multi) installed in /usr/ lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi/auto/DBI Writing Makefile for DBD::SQLite # make : # make test : # make install : ## make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00basic...............ok t/01logon...............ok t/02cr_table............ok t/03insert..............NOK 6# Failed test 6 in t/03insert.t at line 15 # t/03insert.t line 15 is: ok($dbh->last_insert_id(undef, undef, undef, undef )); t/03insert..............FAILED test 6 Failed 1/10 tests, 90.00% okay t/04select..............ok t/05tran................ok t/06error...............ok t/08create_function.....ok t/09create_aggregate....ok t/10dsnlist.............ok t/20createdrop..........ok t/30insertfetch.........ok t/40bindparam...........ok t/40blobs...............ok t/40listfields..........ok t/40nulls...............ok t/40numrows.............ok t/50chopblanks..........ok t/50commit..............ok t/60metadata............ok t/90cppcomments.........ok t/99cleanup.............ok t/ak-dbd................ok t/dbdadmin..............ok Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/03insert.t 10 1 10.00% 6 Failed 1/24 test scripts, 95.83% okay. 1/362 subtests failed, 99.72% okay. make: *** [test_dynamic] Error 255 [root@fc2-sdev DBD-SQLite-1.03]# make install Installing /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/auto/DBD/SQLit e/SQLite.bs Installing /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/auto/DBD/SQLit e/SQLite.so Files found in blib/arch: installing files in blib/lib into architecture depende nt library tree Installing /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/DBD/getsqlite. pl Installing /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/DBD/SQLite.pm Installing /usr/share/man/man3/DBD::SQLite.3pm Writing /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/auto/DBD/SQLite/. packlist Appending installation info to /usr/lib/perl5/5.8.3/i386-linux-thread-multi/perl local.pod [root@fc2-sdev DBD-SQLite-1.03]# cd /var/www/popfile/ [root@fc2-sdev popfile]#
POPFileのインストール
インストール先のディレクトリを指定して解凍します。
# unzip popfile-0.21.2.zip -d /var/www/popfile Archive: popfile-0.20.1.zip inflating: /var/www/popfile/popfile.pl inflating: /var/www/popfile/otto.gif inflating: /var/www/popfile/pix.gif : inflating: /var/www/popfile/skins/sleetImages/top.gif inflating: /var/www/popfile/skins/sleetImages/topLeft.gif inflating: /var/www/popfile/skins/sleetImages/topRight.gif #日本語モジュールを、解凍して上書きします。
# unzip popfile_jpn.zip Archive: popfile_jpn.zip inflating: 0_20_1_1/license creating: 0_20_1_1/POPFile/ creating: 0_20_1_1/POPFile/0.20.0/ : inflating: 0_20_1_1/popfile_jpn.nsi inflating: 0_20_1_1/README_euc inflating: 0_20_1_1/README_sjis # cd 0_21_2_1/POPFile/Classifier/ # cp Bayes.pm /var/www/popfile/Classifier cp: overwrite `/var/www/popfile/Classifier/Bayes.pm'? y #"popfile.pl" に実行属性を設定します。
# cd /var/www/popfile # chmod ug+x popfile.pl
POPFileの起動
# perl popfile.pl POPFile Engine loading Loading... {core: config logger mq} {classifier: bayes} {interface: html} {proxy: pop3} POPFile Engine v0.20.1 starting Initializing... {proxy: pop3} {interface: html} {core: logger mq config} {classifier: bayes} Starting... {proxy: pop3} {interface: html} {core: logger mq config} {classifier: bayes} POPFile Engine v0.20.1 running上記のような表示になれば起動が成功です。
管理ツールの基本動作のチェック
デフォルトでは、インストールしたマシンからしか管理画面が開けないので、LAN上の別のPCから開くために、"/var/www/popfile/popfile.cfg"を、以下のように変更します。
: html_local 0 :設定がうまくできていたら、同じサーバーから、"http://192.168.0.100:8080" を指定すれば、以下のような画面が表示されます。
![]()
POPFile の設定は、上記の管理画面で行います。
バケツの作成
POPFileでは、受け取ったメールは、一時的に保管するそうです。その保管場所を、「バケツ」というそうです。
「バケツ」のタブを選択し、「バケツ作成」のところに、バケツ名を入力し、「作成」ボタンをクリックします。
![]()
私は、スパムを保管する"spam"という名前のバケツと、それ以外のメールを保管する"others"という名前のバケツを作りました。特に決まりは内容ですので、好きなように作ればいいようです。
作成すると、以下のような表示になります。
![]()