Компилирование IMAP Server

После того, как Вы распаковали файлы из tar-архива, перейдите в директорию "cyrus-imapd-NNNN ", где  NNNN - номер версии. В ней находятся конфигурационные файлы и различные поддиректории. В директории в которйо находится файл  configure, выполните команду "./configure"(запустите скрипт configure) для настройки софта. Пожалуйста, читайте этот документ доконца, т. к.  у ./configure есть куча опций которые могут Вам пригодиться.

Обзор configure

Shell-скрипт "configure" попытается найти правильные занчения всех системо-зависимых переменных, которые могут потребоваться при компиляции. Он создает файл "Makefile" в каждой поддиректории пакета. В конце, он создаст: shell-скрипт "config.status" который Вы потом можете запустить для изменения текущей конфигурации(пересоздания), файл "config.cache" который хранит результаты всех тестов и позволяет ускорить процесс повторного создания конфигурации и файл "config.log" содержащий вывод компилятора (полезно, в основном, при отладке "configure").

Выполнение "configure" занимает некоторое время. Во время выполнения он выводит разные сообщения, говорящие о том, что он проверяет в данный момент.

Вы можете собрать пакет в другой директории(не в той, где находяться исходники). Это может понадобиться, например, при компиляции одновременно на нескольких компьютерах. Чтобы это осуществить, у Вас должна быть версия "make" которая поддерживает переменную "VPATH "(например GNU "make").Перейдите в директорию, где Вам нужно создать объектные и исполняемые файлы и запустите скрипт "configure ". "configure" автоматически проверит наличие исходников в директории, где находиться "configure " и в ".."(на уровень выше).

По умолчанию, "make install" установит файлы (кроме программ самого сервера) в "/usr/local/bin", "/usr/local/man ", и т. д.Вы можете переопределить префикс путей "/usr/local" используя у  "configure " опцию "--prefix=PATH".

Вы можете анзначить разные префиксы путей для архитектурно-зависимых и назависимых файлов. Для этого нужно использовать у  "configure " опцию "--exec-prefix=PATH", тогда пакет будет использовать путь  PATH как префикс для установки программ и библиотек. Документация и файлы с другими данными будут использовать регулярный префикс(configure сам его определит - Прим. пер.).

По умолчанию, "make install " установит программы самого сервера в "/usr/cyrus/bin". Вы можете определить префикс для этих программ отличный от "/usr/cyrus" с помощью опции "--with-cyrus-prefix=PATH".

Опции  configure

Ниже приведен список опций, которые могут быть использованы с  " configure ".

--help
Печать всех опций "configure" и выход(процесс настройки не начинается).

--with-auth=METHOD
Определяет аутентификационный (group membership) модуль для использования. Существующие в данный момент модули аутентификации:
unix
Unix-файлы /etc/passwd и /etc/group
krb
Kerberos (требует библиотеки Kerberos). По желанию, можно указать где находится  Kerberos v4 с помощью "--with-krb=DIR" ВАЖНО: Для поддержи Kerberos v4 требуется библиотека DES. Некоторые производители и распространители Kerberos, включая Solaris, не имеют такой поддержки, поэтому в таких системах это не может быть реализовано.
krb_pts
Доверия Kerberos с группой AFS PTserver'ов (требуется Kerberos и библиотеки AFS). При необходимости можно указать расположение библиотек AFS с помощью "--with-afs=PATH". Также требуется поддержка krb, как в вышесказанном случае.
Любой метод аутентификации с SASL может быть использован с любым авторизационным модулем.

--with-krb=PATH
Определяет где нахлдятся библиотеки Kerberos.

--with-com_err=PATH
Определяет где найти среду com_err.

--with-cyrus-group=USER
Определяет группу успользуемую для установки guid на программы. По умолчанию используется "mail".

--with-cyrus-prefix=PATH
Исменяет расположение ПО сервера. По умолчанию,  используется префикс  /usr/cyrus.

--with-cyrus-user=USER
Определяет userid, от имени которого Cyrus IMAP Server будет запускаться. По умолчанию "cyrus".

--with-dbdir=PATH
Определяет, где находятся библиотеки Berkeley DB.

--with-duplicate-db=DB
Определяет БД, которая будет использоваться как юаза двойной доставки. По умолчанию "db3_nosync"

--with-mboxlist-db=DB
Определяет БД, в которой будет храниться списой почтовых ящиков. По умолчанию "db3"

--with-seen-db=DB
Определяет БД для хранения информации о состоянии. По умолчанию "flat"

--with-subs-db=DB
Определяет БД для хранения списка подписок. По умолчанию "flat"

--with-tls-db=DB
Определяет БД, которая будет использоваться, как TLS-кэш. По умолчанию "db3_nosync"

--with-idle=METHOD
Определяет используемый метод IMAP IDLE . В данный момент есть мледующие методы IDLE:
idled
Используется демон IDLE. Демон IDLE слушает сокет UNIX и ждет сообщения от lmtpd/imapd/pop3d на обновление почтового ящика. Демон посылает сигнал на обновление соответствующим imapd.
poll
Переодически заставляет ящики обновляться.
no
Отключает IMAP IDLE.
По умолчанию "poll".

--with-lock=METHOD
Определяет используемый метод блокировки. Существуют следующие методы:
flock
блокировка flock()
fcntl
блокировка fcntl()
По умолчанию используется "fcntl" если функция "fcntl()" существует, усли нет, то используется "flock ".

--with-openssl=PATH
Определяет, где искать библиотеки OpenSSL.

--with-egd-socket=FILE
Определяет сокет дял соединения с  Entropy Gathering Daemon.

--with-perl=PATH
Определяет, где лежат библиотеки Perl'а (полный путь, включающий имя бинарника).

--with-sasl=PATH
Определяет путь к директории содержащей библиотеки (.../lib) и включаемые модули (.../include ) для libsasl.

--with-statedir=PATH
Определяет директорию используемую для связи с различными демонами. Поумолчанию "/var".

--with-libwrap=PATH
Определяет, где искать библиотеку TCP wrappers.

--with-ucdsnmp=PATH
Определяет, где искать библиотеку SNMP.

--with-zephyr=PATH
Определяет, где искать библиотеку Zephyr(для notifyd).

--enable-annotatemore
Включает поддержку расширения ANNOTATEMORE (mailbox/server annotations).

--enable-fulldirhash
Включает улучшенную схему хеширования, при которой хешируется все имя пользователя, вместо только одной первой буквы.

--enable-listext
Включает поддержку расширения LISTEXT.

--enable-murder
Включает поддержку IMAP Murder.

--enable-netscapehack
Включает поддержку для расширения X-NETSCAPE (администраторские URL'ы).

--disable-sieve
По умолчанию, поддержка Sieve включена. Используйте --disable-sieve для запрещения компилякии библиотеки Sieve и полного отключения поддержки Sieve.

--disable-cyradm
Не компилировать админского клиента(программу)  cyradm .

--disable-server
Не компилировать программы сервера IMAP.

Запустите " configure --help" чтобы узнать о дополнительных опциях.

Некоторые системы требуют для компиляции и линковки требуют специфических опций, о которых скрипт "configure" ничего незнает. Вы можете указать их "configure " через установку(задание) значений переменным окружения. Используя Bourne-совместимый шел, Вы можете сделать это прямо из командной строки: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Или в системе, где имеется программа "env " : env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure "make " -переменные, которые Вы можете использовать с "configure ":

CC
Компилятор C.
По умолчанию "cc", или "gcc", если "gcc" присутствует в переменной PATH.
(Для "CC", любое значение переменных окружения  перекроет значение, корое определяет "configure"(Т.е. оно более приорететно -При. пер.).)
CFLAGS
Отладочные и оптимизационные опции для компилятора C.
CPPFLAGS
Главный файл ищет директорию ("-IDIR") и любые другие опции препроцессора C и компилятора. Если это значение не установленно через переменную окружения на момент запуска "configure ", то используется пустое значение.
LDFLAGS
Исключающие("-s") и любые другие опции линкера(программа link). Если это значение не установленно через переменную окружения на момент запуска "configure ", то используется пустое значение.
 
DEFS
Конфигурационные опции, в виде "-Dfoo -Dbar ..."
LIBS
Библиотеки для линковки, в виде "-lfoo -lbar ..."
(Для "DEFS" и "LIBS", любое значение взятое из среды  добавляется к значению определенным скриптом "configure ")
Если у Вас есть какие-нибудь мысли по поводу сборки пакета, мы будем благодарны, если Вы выясните как улучшить "configure ". После этого, пожалушста, пошлите нам патч! Инструкции по этим вопросам находятся на странице с  обратной связью .

Файл "configure.in" используется как шаблон для создания "configure" с помощью вызова программы "autoconf". Вым это понадобится только в том случае, если Вы захотите пересоздать "configure" используя более новую версию "autoconf".

После успешного выполнения "configure ", выполните следующие команды: make depend make all CFLAGS=-O Если нужно, Вы можете переопределить переменные "makeCFLAGS и LDFLAGS следующим образом : make all CFLAGS=-O2 LDFLAGS=-s


last modified: $Date: 2003/07/23 03:09:45 $