qmailに関係するサイトを検索しいろいろ読んで予備知識を仕入れます。 一番参考になったのは、 sendmailを捨て,qmail に乗り換える でした。
dselectを使って、qmail-srcパッケージを取得します。 この時、ucspi-tcp-srcパッケージも推奨されますが、推奨だから 特に持ってくる必要はないかと思うと後で必要になるのでこれも一 緒に持ってきます。
build-qmailを実行します。 この時、qmailで必要になるグループやユーザーは作ってくれます。 時間は20から30分はかかりました。 ワーク用のディレクトリを聞きにくるのですが、デフォルトの /tmp/qmailをそのまま使います。 最後に、直ちにインストールするかと出るのですが、eximと競合し ているだろうからと思って実行しませんでした。 /tmp/qmailの下にqmail用のパッケージができています。
dselectを動かしてqmailと競合すると思われるeximパッケージを削 除します。 eximパッケージに依存しているパッケージの削除も要求されます。 dselectではqmailパッケージは存在しているので、うまく切り替え れば削除しないでいいと思うのですが、結局よくわからず、qmail を入れてから再インストールすればいいとatとかlogrotate等をと りあえず削除します。
dselectでは作成したqmailパッケージの場所がわからないだろうと、 /tmp/qmailに移動してdpkgを実行します。
dpkg -i qmail_1.03-14_i386.debするとqmailはucspi-tcpパッケージに依存しているので、 ucspi-tcpパッケージの要求されます。 ここで、結局ucspi-tcp-srcの取得が必要になります。
qmail-srcパッケージを取得した時に同時にダウンロードしていな ければ、ここで取得します。
build-ucspi-tcpコマンドを実行します。
ワーキングディレクトリをデフォルトの/tmp/ucspi-tcpにします。
このままパッケージができればいいのですが、なぜか途中でエラー
になってしまいます。
gzipコマンドの実行の後、止まっています。
何が問題なのかはよくわかりません。
(追記 '01/03/21
これについては次のようなメールをいただきました。
どうやら原因はreiserfsにあるみたいです。
)
結局、/tmp/ucspi-tcp/ucspi-tcp-0.84/debian/rulesファイルの中
のgzipの部分を削除した後、そのrulesファイルに引数binaryをつ
けて実行すると、一応debファイルができました。
rulesファイルにはgzipの実行部分は二つあるので両方とも削除し
ています。
マニュアルのインストールで問題がでそうですが、とりあえず無視
です。
インストールされるマニュアルは英語でしたので、最後に記述した
qmail附属文書を見た方がいいです。
こちらは日本語に訳されています。
/tmp/ucspi-tcpの下にできたdebファイルをdpkgでインストールし ます。
dpkg -i ucspi-tcp_0.84-1_i386.deb
dpkgを使って再度インストール処理を実行します。 今度は問題なくインストールできます。 eximを削除した時に消したパッケージも再インストールしました。
qmailの設定を実行します。 達成すべき目標は次の二つでした。
qmailを起動します。 起動するには、/etc/init.d/qmailコマンドをstart引数付きで実行 します。 マシンを再起動しても実行されるはずです。 実際に再起動してはいないので未確認。
qmailがちゃんと動作しているか確認するためにqmailのロクを見て みます。 どこかで設定している場所はあるのでしょうが、何もしない状態だ と、/var/log/syslogに出力されました。 自分のドメインに送ると、受信できます。 ログにも問題ないと思ったら、failureと出ます。 fetchmail経由がエラーになっているのでした。 qmailを/etc/init.d/qmail stopと実行して止め、問題に対応しま す。 この時メールは紛失します。
設定についてもう少し勉強します。
qmailの設定の仕組みは
qmail の動作がわかりやすかったです。
fetchmailはfetchmail -vを指定してどうアクセスしているかを見
るとわかりますが、RCPTでlocalhostの誰々に送ります。
これをqmailは何も設定しないとはじいてしまうのでした。
/var/qmail/control/rcpthostsを作成して1行localhostと記述しま
す。これだけだと、qmailは受信してはくれるのですが、ローカル
に配送するメールだと理解してくれないので中継しようとして、結
局うまくいかずエラーになります。そこで、
/var/qmail/control/localsを作成して1行localhostと記述します。
外部に中継しない設定だとlocalsとrcpthostsは同じになると思っ
ていいようです。
これでfetchmail経由でメールを受信できるようになります。
しかし、このままだとドメインに直接くるメールは受信できなくな
ります。rcpthostsやlocalsがないとmeを使ったデフォルトが有効
なのですがそれがきかなくなるためです。そこでドメイン名
xxx.dyndns.orgもlocalsとrcpthostsに追加します。
これでほぼ正常に動作しているようです。
procmailできちんとメールの振り分けができているので問題ないの
ですが、なぜprocmailが使えているのか疑問になってきました。こ
れはDebianが/etc/init.d/qmailの中でメールの配送を
qmail-procmailに回し、それが内部でprocmailで呼び出すように設
定されているためでした。
fetchmailが使えない時、ウェブで検索してみると、qmailと組み合
わせる場合はforcecrを使う必要があるみたいなのですが、つけな
くても正常です。これはよくわからないままです。
alias設定はドメインを公開していないのだから、そのうち設定す ればいいだろうと思っていたのですが、ローカルでのrootへの送信 もエラーになっています。 そこで、/var/qmail/aliasの下に.qmail-abuseと.qmail-defaultと .qmail-mailer-daemonと.qmail-postmasterと.qmail-rootの五つの ファイルを中身はすべて自分のメールアドレスを指定して作成しま した。メールアドレスと言ってもこの場合ユーザIDです。
Debianでのqmailインストールを拝見させていただきました。 ucspi-tcpのビルドで失敗という現象なのですが、 私も今日同じ現象にあいました。 原因はおそらくreiserfsではないでしょうか? 少し調べてみたところ、コンパイル場所(/tmp)がext2なら問題ないようです。 reiserfsでgzip -rを行なうとファイルの再帰読み込みがおかしいのかと。 ucspi-tcpのdebian/rulesの中で実行しているgzipに-vを付加して ビルドしてみるとわかります。 設定の問題なのか、reiserfsのバグなのかは不明なんですが。