ふと思い立って、 POPFile の使用を再開することに。
Windows 環境であれば、 Windows 版のインストーラーでインストールするのが簡単なのだが、インストーラーの最終リリースから相当な年月が経過していることもあり、今回は WSL2 上の Ubuntu 20.04 に apt で各パッケージをインストールすることにした。
KAKASI のインストール
日本語を分かち書きするための日本語パーサーには、デフォルトの KAKASI を使用する。
$ sudo apt install kakasi libtext-kakasi-perl
POPFile のインストール
$ sudo apt install popfile
POPFile の初回起動
$ sudo sh /usr/share/popfile/start_popfile.sh
正常に起動したら、いったん Ctrl + C で終了させる。
POPFile を一般ユーザーの権限で実行するように変更
この状態だと、 POPFile を起動する度に sudo することになり、あまりうれしくない。そのため、一般ユーザーの権限で起動することができるよう、コーパス等の保存先を変更することにする。
以下の例におけるユーザー名 (f7u) は、環境に応じて読み替えが必要。
コーパス等をコピー
start_popfile.sh の初回実行時に /var/lib/popfile/ 以下にコーパスや設定ファイルといった必要なものが生成されているため、それらを ~/.popfile/ 以下にコピーする。作業は POPFile を停止させた状態で行う。
$ sudo cp -R /var/lib/popfile/ ~/.popfile/ $ ls -al ~/.popfile/ total 112 drwxr-xr-x 3 root root 4096 Apr 16 15:14 . drwxr-x--- 8 f7u f7u 4096 Apr 16 15:14 .. drwxr-x--- 2 root root 4096 Apr 16 15:14 messages -rw-r----- 1 root root 2151 Apr 16 15:14 popfile.cfg -rw-r----- 1 root root 98304 Apr 16 15:14 popfile.db
コピーしたファイル・ディレクトリーの所有者を変更
$ sudo chown -R f7u:f7u ~/.popfile/ $ ls -al ~/.popfile/ total 112 drwxr-xr-x 3 f7u f7u 4096 Apr 16 15:14 . drwxr-x--- 8 f7u f7u 4096 Apr 16 15:14 .. drwxr-x--- 2 f7u f7u 4096 Apr 16 15:14 messages -rw-r----- 1 f7u f7u 2151 Apr 16 15:14 popfile.cfg -rw-r----- 1 f7u f7u 98304 Apr 16 15:14 popfile.db
パーミッションを変更
お好みに応じて。
$ chmod 700 ~/.popfile/ $ chmod 700 ~/.popfile/messages/ $ chmod 600 ~/.popfile/popfile.* $ ls -al ~/.popfile/ total 112 drwx------ 3 f7u f7u 4096 Apr 16 15:14 . drwxr-x--- 8 f7u f7u 4096 Apr 16 15:14 .. drw------- 2 f7u f7u 4096 Apr 16 15:14 messages -rw------- 1 f7u f7u 2151 Apr 16 15:14 popfile.cfg -rw------- 1 f7u f7u 98304 Apr 16 15:14 popfile.db
既に POPFile の運用を開始している環境で、 ~/.popfile/ や ~/.popfile/messages/ 以下にフォルダーやファイルが生成されているような場合は、それらのパーミッションも変更することになると思う。
ログファイルと pid ファイルの保存先を作成
$ mkdir ~/.popfile/log/ $ chmod 700 ~/.popfile/log/ $ mkdir ~/.popfile/pid/ $ chmod 700 ~/.popfile/pid/
わたしは ~/.popfile/ 以下にまとめてしまいたかったため、上記のディレクトリーへの保存を選択したが、ユーザーの権限で読み書き可能な場所であれば、どこでも良い。例えば、 ~/var/log/popfile/ や ~/var/run/popfile/ でも良いと思う。
設定ファイル popfile.cfg を修正
設定項目 | 修正前 | 修正後 | 備考 |
---|---|---|---|
bayes_nihongo_parser | kakasi | (修正しない) |
デフォルトでは kakasi が設定されていると思うが、念のため、設定値を確認する。 |
config_piddir | /var/run/popfile/ | /home/f7u/.popfile/pid/ |
POPFile の pid ファイルの保存先を設定する。ユーザーの権限で読み書き可能な場所であれば、どこでも良い。 |
html_language | English | Nihongo |
|
logger_logdir | /var/log/popfile/ | /home/f7u/.popfile/log/ |
POPFile のログファイルの保存先を設定する。ユーザーの権限で読み書き可能な場所であれば、どこでも良い。 |
POPFile 起動用のシェルスクリプトを作成
下記の内容で ~/bin/popfile.sh として作成・保存している。
#!/bin/sh
# POPFile がインストールされている場所
export POPFILE_ROOT=/usr/share/popfile/
# ユーザー用のコーパス等が保存されている場所
export POPFILE_USER=/home/f7u/.popfile/
exec /usr/share/popfile/popfile.pl &
POPFile の起動
$ sh ~/bin/popfile.sh
POPFile コントロールセンターへのアクセス
POPFile の起動後、同じ端末上の任意のウェブブラウザを使用して、 <http://localhost:7070/> にアクセスすると、 POPFile コントロールセンターが表示される。
分類用バケツの作成
「POPFileは最低・最高何個のバケツをサポートしていますか? [POPFile Documentation Project]」によると、
POPFileは最低でも2つのバケツを必要とします。ほとんどの場合、 spam と allowed か spam と inbox といった所でしょう。“unclassified” は最低限の2つのバケツには数えられないので注意してください。
というわけで、「バケツ」→「管理」→「バケツ作成:」からバケツを最低2つ作成する。
例えば、わたしは
- inbox
- info
- news
- ad
- spam
の5つを作成した。 (もともとある unclassified とあわせると計6つ)
メールクライアントの設定
あとは、利用しているメールクライアントの設定を変更し、メールの受信・分類の訂正を続けていくだけ。
- POPFileに対応したBecky!の設定 [POPFile Documentation Project]
- メールクライアントの設定 – メールサーバに SSL で接続したいのですが、POPFile を使用することはできますか? [POPFile Documentation Project]
WSL2 の localhostForwarding の設定
WSL2 上の POPFile に Windows 側からアクセスするためには localhostForwarding を True にする必要があると思っていたが、手元の環境では、その設定をすることなくアクセスすることができている。
環境によっては、 Windows 側の %USERPROFILE%\.wslconfig ファイルに、
localhostForwarding=True
の1行を追記する必要があるかもしれない。