После того, как Вы распаковали файлы из
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
Если нужно, Вы можете переопределить переменные "make "
CFLAGS и LDFLAGS следующим образом :
make all CFLAGS=-O2 LDFLAGS=-s