[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

実装: ブートプロセスの変更

変換するコマンド(makefml mergeml)が行なう作業を、以下で説明します。 手動で行なう必要はありません。

しかしながら、行なっている作業について理解してもらうために、 aliases と include ファイルについての説明をしておきます。

まず、メールサーバに fml4 から fml8 を起動させるように変更しなくてはなりません。 途中経過はどうあれ、最終的に fml8 を起動することができれば、 fml4 の config.ph を適宜解釈するといった作業はなんとかなるという考えです。

もうすこし詳細な解説をしましょう。 MLドライバの仕組み を思い出してください。

たとえば Postfix を使う場合、 Postfix は aliases ファイルから include ファイルを読むべきことを知り、 include ファイルから fml8 の起動の仕方を知ります。 最終的に Postfix は /usr/local/libexec/fml/distribute コマンドを実行します。

起動された distribute コマンドは config.cf を読み込み、 config.cf から メンバーリストなどの場所を知り、 さまざまな処理を行なうといった具合でブートストラップしていきまsす。

つまり、fml8 が起動されるまでに

aliases ファイル (MTA の設定)
include ファイル
の2つの段階を経るわけです。

そして、aliases ファイル(群)には同じMLの設定が重複していてはいけません。 だから /etc/postfix/main.cf には、 次のように fml4 と fml8 の設定両方を書いてもよいのですが、

alias_maps	=	hash:/etc/mail/aliases
			hash:/var/spool/ml/etc/aliases (fml4)
			hash:/var/spool/ml/etc/mail/aliases (fml8)
fml4 と fml8 の aliases ファイル間での重複 (ML名 e.g. elena の重複) は削除があってはなりません。

別の言い方をすると、

MTA -> fml4 の aliases -> fml4 の include -> fml4 (fml.pl)を起動する
となっている起動の順番を次のように変更するわけです。
MTA -> fml8 の aliases -> fml8 の include -> fml8 を起動する
そのためには
fml4 の aliases ファイルから該当するML部分の設定を削除
fml8 の aliases ファイルに該当するML部分の設定を追加
が必要です。

逆に aliases の重複さえなければ、 同じシステム上に fml4 と fml8 が存在しても問題ありません。 もちろん同一MLが fml4 と fml8 の双方に存在しても問題ありませんが、 実際に動くのは、 もちろんいづれか(MTA から起動されるようになっている)一方だけです。

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >