2011年06月25日

[備忘録] Debian Squeezeにfmlをインストール

先日、自宅のメールサーバのディスクが壊れたので新規マシンにDebian Squeezeをスクラッチインストールしました。だいたい元の環境は取り戻せたのですが、ひとつだけ使えなくなってしまったサービスがあります。メーリングリストです。

前のマシンでは、昔インストールしたfmlをずっと使い続けていたのですが、fmlはFHS (File Hierarchy Standard) に対応していない(作者の深町さんなりのお考えあってのことだとは思うのですが)などの問題があり、Debianパッケージとしてはもう提供されていないのです。
いろいろと代替メーリングリストサーバプログラムを調査してみたのですが、どうもfmlと同等の機能を提供できるものはなさそうなので、Debianパッケージとなっていないfmlをインストールすることにしました。

最初に、インストール先のディレクトリを決めておかなくてはなりません。今回は、なるべくFHSに近づけるため、本体は/opt/fmlにインストールし、スプールディレクトリは/var/opt/fmlを使うことにします(完全にFHSに準拠することはできません;そのためには、例えば設定ファイルは/etc/opt/fmlの下におく必要があります)。

まず、fmlのグループとユーザを作成します。

% sudo addgroup --system fml
% sudo adduser --system --home /opt/fml --ingroup fml

これで/opt/fmlは作成されるので、次にスプールディレクトリを作成します。

% sudo mkdir /var/opt/fml
% chown fml.fml /var/opt/fml

fmlのソースを取得して展開します。stableバージョンとしては4.0.4が出ているのですが、Debianメーリングリストの運用には4.0.3が使われていることもあり、こちらを使用することにします。

% ftp ftp.fml.org
ftp> get /pub/fml/release/fml-4.0.3.tar.bz2
ftp> quit
% tar xfj fml-4.0.3.tar.bz2

Debian-users:55112の武藤さんのメッセージ中のパッチ(Debian.patchというファイル名で保存されていると仮定します)を当てます。

% cd fml-4.0.3/src
% patch <Debian.patch
% cd ..

ユーザfmlでインストールします。こうすると、MLの設定などはすべてユーザfmlにsudoして行う必要があるので運用はちょっと面倒になりますが、インストールは簡単ですし、予期しない問題も起こりにくいようです。

% sudo chown -R fml.fml .
% sudo -u fml make install
...

最初の質問には、personal(これがデフォルトになっているはずです)と答えます。
次にドメイン名とFQDNを聞かれるので、適宜答えます。
続いてインストールディレクトリを聞かれるので、先に作成した/opt/fmlと/var/opt/fmlを指定します。
後は言語とタイムゾーンを設定し、「インストールしますか?」にyと答えれば、ファイルがコピーされます。

これでインストールは終わりですが、うちの環境ではもうひとつやっておかねばならないことがありました。うちのMTAはIPv4のコネクションのみを受け付けているのですが、fml-4.0.3ではデフォルトでIPv6のコネクションを張りに行くため、この動作をしないよう設定する必要があります。/opt/fml/default_config.phを編集し、$USE_INET6を1から0に変更します。

% sudoedit /opt/fml/default_config.ph

もちろん、MTAがIPv6を受け付けるように設定されている環境では、その必要はありません。

これでfmlがインストールされましたので、実際のメーリングリストを作成して行きます。

% sudo -u fml /opt/fml/makefml newml test_ml

これでtest_mlというメーリングリストが作成されます。MTAと連携させるためには、/var/opt/fml/test_ml/aliasesの内容を/etc/aliasesに追加して、newaliasesコマンドを実行する必要があります。

% sudoedit /etc/aliases
% sudo newaliases

新規のMLならこれで終わりですが、今までのMLのメンバーやシーケンス番号を引き継ぎたいときには、バックアップから以下のファイルを上書きすればOKです。

% cd /srv/archive/var/spool/ml/test_ml # バックアップしてあったMLのスプールディレクトリ
% sudo -u fml cp -ir actives log members seq spool summary /var/opt/fml/test_ml

ヘッダの書き換え設定などはconfig.phというファイルに保存されていますが、サーバのFQDNなどの設定が更新されていると思うので、config.phをそのままコピーするのではなく、makefmlコマンドを使って設定しなおすほうがよいでしょう。

% sudo -u fml /opt/fml/makefml config test_ml

念のため、新旧のconfig.phを比較してみて、基本的な違いがないことを確かめます。

% diff /srv/archive/var/spool/ml/test_ml/config.ph /var/opt/fml/test_ml/config.ph

これで、前の設定を引き継いだメーリングリストが作成できているはずです。
テストメッセージを投げて、確認してみましょう。
posted by ぽそこし at 22:53| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック