戻る

原文:http://wiki.dovecot.org/CompilingSource(8版)
翻訳:龍義(Toyota Tatsuyoshi)

Dovecot をソースからコンパイル

ほとんどの人は、以下のようにすれば、十分です:

./configure
make
sudo maek install

この操作は、Dovecotを /usr/local ディレクトリにインストールします。 設定ファイルは /usr/local/etc/dovecot.conf になります。 デフォルトでは syslog の facility は mail で記録され、多くの場合、 /var/log/mail.log か似たような名前のファイルに記録されます。 もし、急ぎでしたら、 QuckConfiguration の文章に行ってください。

もし、Dovecot に必要なライブラリを特別な場所にインストールした 場合は、 CPPFLAGS と LDFLAGS を環境変数として指定してあげなければ なりません。例えば以下のようにです(bash などの sh 系の例です)。

CPPFLAGS=-I/opt/openssl/include LDFLAGS=-L/opt/openssl/lib ./configure

CVS

もし CVS から Dovecot を得る場合は、 configure スクリプトを 作るため、まず最初に ./autogen.sh を実行します。 このときは、既に pkg-config パッケージがインストールされている必要があります (/usr/share/aclocal/pkg.m4 ファイルが必要です)。

SSL/TLS サポート

Dovecot はまず最初に OpenSSL と GNUTLS をサポートするために 作成されました。しかし、 GNUTLS には若干の問題があり、今はもう 動かなくなりました。その修正パッチは喜んで迎え入れます。

現在 OpenSSL がデフォルトで使用されます。そして、それは自動的に 見つけられるようになっています。もし、見つかられない場合は、 いくつかのヘッダーファイルかライブラリがない、もしくは 標準的なパスにインストールされていないということでしょう。 openssl-dev もしくはそのような名前のパッケージがインストールされて いることを確認してみてください。そして、標準的な場所にない場合は 最初のセクションで示したように CPPFLAGS と LDFLAGS を付けてください。

デフォルトでは SSL の証明書は /etc/ssl/certs/dovecot.pem から読まれ、 プライベートキーは /etc/ssl/private/dovecot.pem から読まれます。 /etc/ssl ディレクトリは --with-ssldir=DIR という configure の オプションで変更できます。もちろん、Dovecot の設定ファイルからも 変更することができます。

通知方法

注意:Linux カーネル 2.6.13-rc3 から現在の inotify がありますが、 それは dnotyfy を使うことよりも望まれます。 もしディストリビューションの中に必要なヘッダファイルが 入ってない場合は、 inotify の管理者から得るようにしてください。

mkdir -p /usr/local/include/sys
cd /usr/local/include/sys
curl ftp://ftp.kernel.org/pub/linux/kernel/people/rml/inotify/headers/inotify.h -O
curl ftp://ftp.kernel.org/pub/linux/kernel/people/rml/inotify/headers/inotify-syscalls.h >> inotify.h

選択可能な configure のオプション

--help は利用可能な全てのリストを表示します。

オプションは通常 --with-something もしくは --enable-something という 形で使います。もし、それらを使いたくない場合は --without-something もしくは --disable-something とします。autoconf や automake や libtool からの 多くのデフォルトオプションがあります。そのオプションは、どこか 別な場所で解説されています。

Dovecot が加えたオプションのリストを示します。通常は、これらの オプションを変える必要はありませんが、完全を期すため、ここに 書きます。

-−enable-ipv6 IPv6 のサポートを有効にします。もし、システムが サポートしていることがわかれば、これはデフォルトで有効になります。

-−enable-debug デバッグするためのいくつかの特別なチェックを有効にします。 これは開発者にとって、とても役立ちます。これは、非常に多くの不必要な ことをしますが、いくつかのプログラミングの間違いを、さらに早く 把握することができます。

-−enable-asserts アサートチェックを有効にします。デフォルトで 有効になります。無効にすれば CPU の使用をわずかに抑えられるかも しれませんが、見つかる前のバグがあった場合に、多くの問題が 発生する可能性があります。

--with-file-offset-size=BITS ファイルオフセットを 32 ビットにするか 64 ビットにするか指定します。システムがサーポートする場合は、 64 ビットがデフォルトになります(Linux と Solaris はサポートします)。 32 ビットに下げることは、メモリの使用を抑えることができますが、 2GB 以上のサイズのファイルにアクセスすることが出来なくなります。

--with-mem-align=BYTES メモリアロケーションのために使われる記憶領域を 設定します。多くの x86 ではないシステムでは設定が必要で、 x86 システムと同様に設定することで速度が早くなります。 デフォルトは 64 ビットメモリをアクセスするため 8 になります。

--with-ioloop=IOLOOP どのような I/O ループを使用するか設定します。 poll と epoll が選択可能です。デフォルトは可能ならば poll を 使い、 select に頼ります。 epoll は poll よりも高速ですが、 Linux 2.6 カーネルでしか動作しません。

--with-notify=NOTIFY 使用するファイルシステム通知方法について設定します。 dnotify, inotify(この2つは Linux), kqueue(FreeBSD), none が 設定できます。デフォルトは、コンパイルできるなら dnotify が使われ、 コンパイルできなければ none が使われます。 詳細は上記の通知方法の項を参照してください。

--with-pop3d IMAP サーバと同様に POP3 サーバのバイナリを作成さいます (デフォルトで作成されます)。実際に使う前に、これとは別に Dovecot の 設定ファイルにて有効にしなければなりません。

--with-storages=FORMATS メールボックスサポートについて設定します。 デフォルトは maildir と mbox で両方サポートします。

認証に関するオプション

システムが下記の認証をサポートしていると判定されれば、 基本のバックエンドを作成します。

--with-passwd           Build with /etc/passwd support (default)
--with-passwd-file      Build with passwd-like file support (default)
--with-shadow           Build with shadow password support (default)
--with-pam              Build with PAM support (default)
--with-checkpassword    Build with checkpassword support (default)
--with-bsdauth          Build with BSD authentication support (default)
--with-static-userdb    Build with static userdb support (default)
--with-vpopmail         Build with vpopmail support (default)

いくつかの認証は、必ずしも必要ではないのですが特別なライブラリを 必要としています。なので、もし特別に可能であった場合のみ、 ビルドされます。

  --with-ldap             Build with LDAP support
  --with-pgsql            Build with PostgreSQL support
  --with-mysql            Build with MySQL support

動的認証モジュール

Dovecot は $prefix/lib/dovecot/auth/ ディレクトリから認証モジュールを 動的にロードすることもできます。 バイナリパッケージの作者は、外部のライブラリ(例えば LDAP や vpopmail)を 必要とする認証モジュールのため、以下のコマンドを使うべきです。 現在、モジュールとしてこれらを作成する標準的な方法がありませんが、 以下のようにすれば、動くはずです。

gcc -shared -fPIC -DHAVE_CONFIG_H -DUSERDB_LDAP -DPASSDB_LDAP \
-I../.. -I../lib -I../lib-settings \
db-ldap.c userdb-ldap.c passdb-ldap.c -o ldap.so \
../lib-settings/libsettings.a -lldap

gcc -shared -fPIC -DHAVE_CONFIG_H -DUSERDB_PGSQL -DPASSDB_PGSQL \
-I../.. -I../lib -I../lib-settings -I/usr/include/postgresql \
db-pgsql.c userdb-pgsql.c passdb-pgsql.c -o pgsql.so \
../lib-settings/libsettings.a -L/usr/lib/postgresql -lpq

gcc -shared -fPIC -DHAVE_CONFIG_H -DUSERDB_VPOPMAIL -DPASSDB_VPOPMAIL \
-I../.. -I../lib userdb-vpopmail.c passdb-vpopmail.c -o vpopmail.so \
-lvpopmail

libsettings.a を ldap.so と pgsql.so に含めることは面倒ですが、 Dovecot の認証では、必要ではありません。

動的な IMAP と POP3 のモジュール

もし imap_use_modules もしくは pop3_use_modules を yes にしたならば、 mail_modules の設定から指定されるディレクトリの全ての *.so モジュールを ロードします。そのモジュールは何でもでき、モジュールは呼び出される _init と _deinit 関数を含んでいるだけです。