Debianでのqmailインストール

Updated 2001/03/22

0.初めに

自分のドメインを持ったので、メールを受け取れるようにMTAを設 定したくなりました。 Debianデフォルトのeximでの設定を目指しましたが日本語ドキュメ ントもあまりないみたいでよくわかりません。 そこで、日本語ドキュメントが豊富で設定が一番簡単そうなqmail をインストールすることにしました。 この作業は2001年1月17日のDebian GNU/Linux 2.2をもとに実行しています。 作業は下記です。 詳細についてこれから記述します。
  1. qmail情報の取得
  2. qmail-srcパッケージの取得
  3. qmailパッケージの作成
  4. eximパッケージの削除
  5. qmailパッケージのインストール
  6. ucspi-tcp-srcパッケージの取得
  7. ucspi-tcpパッケージの作成
  8. ucspi-tcpパッケージのインストール
  9. qmailパッケージの再インストール
  10. controlファイルの設定
  11. qmailの起動
  12. qmailの動作チェック
  13. controlファイルの設定追加
  14. procmailとfetchmail
  15. alias設定
  16. 最後に

1.qmail情報の取得

qmailに関係するサイトを検索しいろいろ読んで予備知識を仕入れます。 一番参考になったのは、 sendmailを捨て,qmail に乗り換える でした。

2.qmail-srcパッケージの取得

dselectを使って、qmail-srcパッケージを取得します。 この時、ucspi-tcp-srcパッケージも推奨されますが、推奨だから 特に持ってくる必要はないかと思うと後で必要になるのでこれも一 緒に持ってきます。

3.qmailパッケージの作成

build-qmailを実行します。 この時、qmailで必要になるグループやユーザーは作ってくれます。 時間は20から30分はかかりました。 ワーク用のディレクトリを聞きにくるのですが、デフォルトの /tmp/qmailをそのまま使います。 最後に、直ちにインストールするかと出るのですが、eximと競合し ているだろうからと思って実行しませんでした。 /tmp/qmailの下にqmail用のパッケージができています。

4.eximパッケージの削除

dselectを動かしてqmailと競合すると思われるeximパッケージを削 除します。 eximパッケージに依存しているパッケージの削除も要求されます。 dselectではqmailパッケージは存在しているので、うまく切り替え れば削除しないでいいと思うのですが、結局よくわからず、qmail を入れてから再インストールすればいいとatとかlogrotate等をと りあえず削除します。

5.qmailパッケージのインストール

dselectでは作成したqmailパッケージの場所がわからないだろうと、 /tmp/qmailに移動してdpkgを実行します。

dpkg -i qmail_1.03-14_i386.deb
するとqmailはucspi-tcpパッケージに依存しているので、 ucspi-tcpパッケージの要求されます。 ここで、結局ucspi-tcp-srcの取得が必要になります。

6.ucspi-tcp-srcパッケージの取得

qmail-srcパッケージを取得した時に同時にダウンロードしていな ければ、ここで取得します。

7.ucspi-tcpパッケージの作成

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附属文書を見た方がいいです。 こちらは日本語に訳されています。

8.ucspi-tcpパッケージのインストール

/tmp/ucspi-tcpの下にできたdebファイルをdpkgでインストールし ます。

dpkg -i ucspi-tcp_0.84-1_i386.deb

9.qmailパッケージの再インストール

dpkgを使って再度インストール処理を実行します。 今度は問題なくインストールできます。 eximを削除した時に消したパッケージも再インストールしました。

10.controlファイルの設定

qmailの設定を実行します。 達成すべき目標は次の二つでした。

メールの送信はimを使っていますので不要ですし、中継する必要も ありません。
そこでローカルでの受信はできるだろうと思いこんでドメインでの 設定だけしました。 /var/qmail/controlの下にmeファイルを作成し、自分の作成したド メイン名xxx.dyndns.orgを入れます。 これだけの設定だと問題ですので、参考にする方は必ず最後まで読 んでください。

11.qmailの起動

qmailを起動します。 起動するには、/etc/init.d/qmailコマンドをstart引数付きで実行 します。 マシンを再起動しても実行されるはずです。 実際に再起動してはいないので未確認。

12.qmailの動作チェック

qmailがちゃんと動作しているか確認するためにqmailのロクを見て みます。 どこかで設定している場所はあるのでしょうが、何もしない状態だ と、/var/log/syslogに出力されました。 自分のドメインに送ると、受信できます。 ログにも問題ないと思ったら、failureと出ます。 fetchmail経由がエラーになっているのでした。 qmailを/etc/init.d/qmail stopと実行して止め、問題に対応しま す。 この時メールは紛失します。

13.controlファイルの設定追加

設定についてもう少し勉強します。 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に追加します。 これでほぼ正常に動作しているようです。

14.procmailとfetchmail

procmailできちんとメールの振り分けができているので問題ないの ですが、なぜprocmailが使えているのか疑問になってきました。こ れはDebianが/etc/init.d/qmailの中でメールの配送を qmail-procmailに回し、それが内部でprocmailで呼び出すように設 定されているためでした。

fetchmailが使えない時、ウェブで検索してみると、qmailと組み合 わせる場合はforcecrを使う必要があるみたいなのですが、つけな くても正常です。これはよくわからないままです。

15.alias設定

alias設定はドメインを公開していないのだから、そのうち設定す ればいいだろうと思っていたのですが、ローカルでのrootへの送信 もエラーになっています。 そこで、/var/qmail/aliasの下に.qmail-abuseと.qmail-defaultと .qmail-mailer-daemonと.qmail-postmasterと.qmail-rootの五つの ファイルを中身はすべて自分のメールアドレスを指定して作成しま した。メールアドレスと言ってもこの場合ユーザIDです。

16.最後に

私の経験は以上です。 最終的に作成した設定ファイルは次の通りでした。 より詳しいことは、 www.jp.qmail.orgを見て勉強 します。 中は雑然としていてわかりにくいですが、qmai附属文書が普通のマ ニュアルになっています。

A.1. 受領メール

Debianでのqmailインストールを拝見させていただきました。

ucspi-tcpのビルドで失敗という現象なのですが、
私も今日同じ現象にあいました。

原因はおそらくreiserfsではないでしょうか?
少し調べてみたところ、コンパイル場所(/tmp)がext2なら問題ないようです。
reiserfsでgzip -rを行なうとファイルの再帰読み込みがおかしいのかと。
ucspi-tcpのdebian/rulesの中で実行しているgzipに-vを付加して
ビルドしてみるとわかります。

設定の問題なのか、reiserfsのバグなのかは不明なんですが。