FreeBSD 上で Ruby を使って milter を書きたいときは
Ruby を使って milter を書く場合、milter manager の Ruby バインディングを利用するのが手っ取り早い。 しかし、FreeBSD の ports / packages ではこれが無効化されている(というか、milter manager 自体がデフォルトで有効化していない)ため、ソースを取得して自前でビルドしてやる必要がある。
milter-manager の公式配布元は OSDN のようだが(ちなみに公式サイトにはなぜかダウンロードページや配布元へのリンクというものが存在しない)、例によって接続が極めて不安定な状態。なので ports / packages は github から取得するようになっている。この ports の distfile を利用してもいいのだが、ports のほうもすっかり放置プレイのようでビルド対象が大分古い。せっかくなので、最新版(といってもリリースは 2023 年 1 月だが……)の 2.2.7 を取得する。
milter-manager.2.2.7.tar.gz
をダウンロードしたらこれを展開し、configure
を実行する。この時、オプションを付けてやらないと Ruby バインディングがビルド・インストールされない。
./configure --enable-ruby-milter
ports / packages からインストールしてあって、これを上書きしたくない場合は、インストール先を変更してやった方がいいかも。
それが終わったら、gmake
でビルド。丸々インストールしてしまっていい場合はいきなり gmake install
でもいい。
Ruby バインディングだけインストールする場合、一旦全体を make したあと、Ruby バインディングの在処まで潜って gmake install
を実行する。
cd binding/ruby/ gmake install
なんか pkg upgrade したら milter が動かなくなってたんですが?!
上記の手順でインストールした gem は、インストール時に使用した Ruby のバージョンに依存した場所に配置される。そのため、Ruby をバージョンアップすると動かなくなってしまう。
pkg upgrade
等でソフトウェアをアップデートする際は、その対象に Ruby が含まれていないか確認し、含まれていた場合はアップデート後に上記手順を再度実行して gem を再インストールしましょうね。うっかりすると、「ある時からメールが一切送受信できなくなってた」とか恐ろしい事態が……