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>