Courier-imapに関するメモ

2010/01/11


目次

Courier-imapのインストール

Courier-imapとNFSスプールの時刻ずれ問題


Courier-imapのインストール

ここで説明する前提の環境

このまま利用できる対象は、CentOS 4.x (5.x)です。
courier-authlib-develパッケージが必須ですので、courier- authlibを先に作成しておく必要があります。

1. ソースコードの取得

最新版をCourier-imapのダ ウンロードサイトからダウンロードしてください。


2. rpmビルドディレクトリの準備

CentOSの場合、specファイルが含まれていますので、rpmとして作成するのがお勧めです。
courier-imapはrootユーザでビルドすることができません。一般ユーザのホームディレクトリにrpmを構築するディレクトリを作成し、そこ でビルドするように設定します。
準備は次のようになります。

$ pwd

/home/sasaki
$ mkdir rpm
$ mkdir rpm/BUILD
$ mkdir rpm/RPMS
$ mkdir rpm/SOURCES
$ mkdir rpm/SPECS
$ mkdir rpm/SRPMS
$ echo "%_topdir /home/sasaki/rpm" > .rpmmacros


3. rpmのビルド

rpmbuildコマンドは、specファイルが含まれているtarアーカイブをそのままビルドすることができます。
作成されたrpmはrpm/RPMS/i386などの配下にあります。
また、aオプションを指定することでrpm/SRPMS配下にSRPMも作成されます。

$ rpmbuild -ta /var/tmp/courier-imap-4.7.0.tar.bz2

4. インストール

作成されたrpmをインストールします。
インストールはrootユーザで行う必要があります。
また、courier-imapはcyrus-imapdと競合しますので、cyrus-imapdを利用していなければ削除してください。

$ cd /home/sasaki/rpm/RPMS/i386
$ ls courier-imap*c
ourier-imap-4.7.0-1.i386.rpm
courier-imap-debuginfo-4.7.0-1.i386.rpm
$ su -
password: ********

# cd /home/sasaki/rpm/RPMS/i386
#
rpm -ivh ccourier-imap-4.7.0-1.i386.rpm
準備中...                 ########################################### [100%]
   1:courier-imap           ########################################### [100%]
#



Courier-imapとNFSスプールの時刻ずれ問題

Courier-imapでNFSスプールを利用する場合、imapサーバとNFSサーバの時刻が+-30秒以上ずれると、courier側で一時 的なエラーと認識され、メールボックスにアクセスできなくなります。

この部分はimap/imapd.cにハードコードされており、設定で時間を伸ばしたり無効にすることはできません。
NFSサーバが時刻設定できないものだったり、ストレージエリアネットワークがNTPから独立していてアクセスできないなどがある場合、このチェックは時 限爆弾のように突然の動作停止を招くことがあります。

これを無効にするには、imap/imapd.c: static int chk_clock_skew()  が常に0を返すようにソースコードを書き換える必要があります。

この機能を無効にするための、noclockskewパッチを作成しました。
4.5.0
4.7.0

上記のパッチを含めたSRPMパッケージも作成しています。このパッケージに含まれるspecファイルは courier-imap.noclockskew.specという名前になっていますので、ビルド時には注意してください。
4.5.0
4.7.0



Copyright 2010 N.Sasaki <saaski@3bit.co.jp>