WSL2 上の Ubuntu 20.04 に POPFile をインストールする

ふと思い立って、 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

POPFile の操作自体は、どの言語でもかわりはありませんが、日本語のメールに対応した、分かち書きなどをおこなうためには、インタフェースを 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つ)

メールクライアントの設定

あとは、利用しているメールクライアントの設定を変更し、メールの受信・分類の訂正を続けていくだけ。

WSL2 の localhostForwarding の設定

WSL2 上の POPFile に Windows 側からアクセスするためには localhostForwarding を True にする必要があると思っていたが、手元の環境では、その設定をすることなくアクセスすることができている。

環境によっては、 Windows 側の %USERPROFILE%\.wslconfig ファイルに、

localhostForwarding=True

の1行を追記する必要があるかもしれない。

タイトルとURLをコピーしました