(1/2)本連載の総仕上げとして、アフターフォローや小ネタを含めたTipsを紹介する。今回はインストール関連編として、RPMを中心とした話題を集めてみた。});「実用qmailサーバ運用・管理術」を締めくくるに当たり、いままで紹介し切れなかったことをTipsとして2回にわたって紹介します。前回のトラブルシューティングと同様、すべてを網羅することはできないので、実際の運用で使われる頻度が高そうなものを見ていきましょう。その1本連載では、パッケージの導入をソースからインストールする方法で説明してきました。最近のLinuxディストリビューションにはRPMなどのパッケージ管理ツールが備わっており、パッケージの依存性が崩れてしまうなどの懸念からかソースからのインストールを嫌う方もいるようです。qmailをソースからインストールしてもパッケージの依存性を損なうことはありませんが、パッケージ管理ツールで一元管理できるメリットも捨て難いものです。Manager)を例に見ていきましょう。RPMといっても、実はバージョンによって実行するコマンドや用意するファイルが違ってきます。ここではバージョン4以上を前提にします(バージョン3の場合は、注を参照ください)。RPMのバージョンは、以下の方法で確認できます。4.1qmailインストールの前に1つのサーバに2つのMTAは要らないので、sendmailを削除します。残しておくとqmailのインストールの際にエラーが発生します(注)。注:qmailをインストールすると、/var/qmail/bin/sendmailをリンク元として/usr/lib/sendmailが作成されます。sendmail場合によっては依存関係を無視する必要があります。sendmailPostfixがデフォルトのMTAとして動作している場合もあるため、これを削除するかサービスの自動起動をntsysvなどのコマンドで解除しておきます。RPMによるqmailのインストール次にqmailのRPMファイルを入手してインストールするわけですが、ビルドされたRPMが公開されていない(注)ため、SRPMを入手してrpmbuildを実行し、ビルド済みRPMファイルを作成する必要があります。注:公開されているqmail-1.03-109memphis.src.rpmは、実際にはmakeまで終了しているバイナリで構成されています。http://www.qmail.org/rpms/var-qmail/qmail-1.03-109memphis.src.rpm注:src.rpmファイルをローカルに保存し、そこからインストールすることも可能です。Turbolinuxでは/usr/src/turbo/、/var/src/rpmとなるなど、ディストリビューションによって異なります。/usr/src/redhat/SPECS/var-qmail.specrpmbuildが終わったら、ビルド済みRPMファイルをインストールします。ここで作成したRPMファイルにはqmail-date-localtime.patchが適用されていないため、ヘッダに記録される日付・時間情報がローカルタイムになりません。qmail-date-localtime.patchを適用するには、後述の「RPMでインストールしたqmailにパッチを当てるには」を参照してください。ホスト名」(注)まで実行してくれるため、ほとんど手を加える必要はありません。Maildir形式でメッセージを保存する場合は/var/qmail/rcファイルを編集します。-f」の値が使われます。←./Mailboxから書き換え/var/qmail/rc確認のため配信テストを行います。以上の作業で、xinetdやinetdを使ってqmailを動作させることはできますが、qmailといえばやはりucspi-tcpパッケージに含まれるtcpserverです。ucspi-tcpはビルドされたRPMファイルが用意されているため、checkpassword-0.90-1と併せて入手・インストールします。qmailによるSMTPサーバの構築の「tcpserverのインストールとcdbの作成」以降と同じように行います。127.:allow,RELAYCLIENT=""/etc/tcp.smtp以下のようにしてcdbファイルを作成します。/etc/tcp.smtpcdbファイルを作成したら、rcスクリプトを用意します。/etc/init.d/qmail(ファイルのダウンロード)注:コピー&ペーストする場合は、行末に余分な空白文字が挿入されていないか確認しましょう。/etc/rc.d/rc5.d/K99qmailqmailのrcスクリプトを用意したら、ipchainsやiptablesでSMTPやPOP3がブロックされていないか確認し、サービスを開始します。ユーザーのためのMaildirディレクトリを用意することをお忘れなく。qmailによるSMTPサーバの構築と同様に手動で作成する必要がありました。rcスクリプトまで面倒を見てくれるRPMパッケージもあります。http://www.qmail.org/rpms/には、qmail-runパッケージが用意されています。daemontoolsによるロギングとプロセス監視で紹介したsvscanによるqmailプロセスの常駐化です。そのため、qmail-runを利用するには次のパッケージもインストールする必要があります。その1」の手順でqmail-1.03-109memphis.i386.rpmとucspi-tcp-0.88-003memphis.i386.rpmのインストールまで済んでいるものとします。次に必要なRPMファイルをインストールしますが、順番に注意しましょう。最後にqmail-runパッケージをインストールするようにします。http://www.qmail.org/rpms/qmail-run/qmail-run-11.06-001memphis.noarch.rpm注:RPMファイルをローカルに保存し、そこからインストールすることも可能です。各種設定の実施svscanが実行されるように、/etc/inittabに設定を数行追加します。追加する場所にも注意しましょう。←追加/etc/inittab編集したら/etc/inittabファイルを再認識させます。その後、svscanプロセスが起動していることを確認します。daemontoolsによるロギングとプロセス監視で説明したとおり、svscanに監視させたいプロセスを/serviceディレクトリに登録する必要があります。add-service.shスクリプトを利用することで手順を省略できます。デフォルトで登録可能なサービスを見てみましょう。listaxfrdnsdnscachefingerdftpdhttpdproftpdrlogindrshdrsyncqmail(※)qmail-pop3d(※)qmail-smtpd(※)qmail-qmtpd(※)qmail-qmqpd(※)pickdnsrbldnsrblsmtpd(※)telnetdtinydnswalldnswuftpd※:今回のインストールで利用可能なものここで表示されるサービスの実体は/var/serviceにあります。svscanqmail-qmqpdやrblsmtpdなど、興味をそそるものも用意されていますが、まずはいままでの定石どおりqmail、qmail-smtpd、qmail-pop3dを常駐サービスに加えることにします。次に、デフォルトの設定で変更や追加が必要な個所に修正を加えます。その1」で、/var/qmail/rcを編集してメッセージをMaildir形式で保存するようにしました。ここでは、/var/service/qmail/defaultdelivery/rcファイルを設定します。←./Mailboxから書き換え/var/service/qmail/defaultdelivery/rctcprulesで使用するリレーコントロールファイル(cdbファイル)を/var/service/サービス名ディレクトリに用意します。qmailによるSMTPサーバの構築を参照してください。←ネットワーク環境に合わせて変更127.:allow,RELAYCLIENT=""/var/service/qmail-smtpd/tcp.smtp上記のようなファイルを用意し、以下の手順でcdbファイルを生成します。←ネットワーク環境に合わせて変更127.:allow,RELAYCLIENT=""/var/service/qmail-pop3d/tcp.smtp同じくtcp.smtpファイルを用意し、cdbファイルを生成します。tcp.smtpちなみに、cdbファイルは/var/service/サービス名/runファイル中のCDB変数で指定されています。CDB="/var/service/qmail-pop3d/tcprules.cdb"/var/service/qmail-pop3d/runの場合multilogでログを記録する際のファイルサイズの制限、ローテーションファイルの個数の設定は、次のファイルで行います。←古いログファイルをいくつまで残すかを指定/var/service/multilog/fileno準備が整ったらadd-service.shスクリプトを使い、サービスを追加します。add-service.shの引数にqmail、qmail-pop3d、qmail-smtpdの3つを指定します。...(以下略)登録されたサービスに対するリンクファイルが/serviceディレクトリに作成されていることを確認します。/service/サービス名でも確認できます。/commandディレクトリにはそれぞれのサービスに対してinitファイルが作成されているため、そちらを使用します。seconds以上で作業は終了です。複数のパッケージを導入するためコマンド1つで完了とはいきませんが、ソースからインストールするよりは負担が軽くなります。エラーが出てしまうと、どこでエラーが発生しているかを調べるのに手間が掛かるという側面もありますが、落ち着いてもう1度エラーメッセージを確認しましょう。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。