Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
www.lissyara.su
—> документация
—> EXIM
|
|
Другие файлы, чьи имена начинаются словом
“README
” могут так же присутствовать.
|
Главные утилиты содержаться в
“src
” директории, и собираются вместе с бинарным файлом exim. Директория
“util
” содержит несколько дополнительных скриптов, которые могут быть полезны на некоторых этапах.
4.2 Разнообразие архитектур и операционных систем
Процесс сборки exim'а устроен таким образом, что бы облегчить получение бинарных файлов для разных архитектур и операционных систем из одного и того же набора исходных кодов. Компиляция происходит не в директории
“src
”. Вместо этого создается
“build directory
”, для различных операционных систем. В
“build directory
” создаются символические ссылки на исходные коды. В большинстве случаев exim способен распознать архитектуру компьютера и операционную систему, но в случае необходимости, это может быть изменено.
4.3 PCRE библиотеки
Exim больше не имеет встроенной библиотеки PCRE, поскольку подавляющее большинство современных систем включают в себя PCRE, как системную библиотеку, но, возможно, вам потребуется инсталлировать пакет PCRE или PCRE-devel для вашей операционной системы. Если ваша система содержит обычную инсталляцию PCRE, то для сборок exim'a не потребутся дополнительного конфигурирования. Если библиотека или файлы заголовков расположены нестандартно, вам потребуется установить директивы PCRE_LIBS и INCLUDE, соответственно. Если ваша операционная система не имеет поддержки PCRE, вам необходимо скачать и собрать текущий релиз PCRE c сайта ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.
4.4 DBM библиотеки
Даже, если вы не используете каких-либо DBM файлов в вашей конфигурации, Exim нуждается в этой библиотеке, для работы с индексированными файлами баз данных. К сожалению, присутствует множество DBM библиотек и зачастую, различные операционные системы требуют, различные установленные библиотеки.
“
Если вы используете Solaris, IRIX, какую-либо современную BSD систему, или дистрибутив Linux, конфигурация DBM должна пройти автоматически, и вы можете не читать этот раздел. В противном случае, Вам придется узнать больше о DBM библиотеках, чем Вы хотели.
Лицензионные версии Unix обычно содержат библиотеку функций DBM, работающую через интерфейс ndbm
”, на это Exim рассчитывает по умолчанию. В свободных версиях Unix понятие стандарт варьируется. В частности в ранних версиях Linux по умолчанию не было никакой библиотеки DBM, и различные распространители использовали различные версии DBM в свои дистрибутивы. Как бы то ни было, свежие версии стандартизировались на библиотеке DB от Berkley.
“
Различные DBM библиотеки имеют разные соглашения об именовании файлов, которые они используют. Когда программа открывает файл с именем dbmfile
”, существует несколько вероятностей:
1. Традиционная
“ndbm
” реализация, например, в ОС Solaris, оперирует с двумя файлами
“dbmfile.dir
” и
“dbmfile.pag
”.
2. GNU библиотека,
“gdbm
”, оперирует одним файлом. Если используется
“ndbm
” совместимый интерфейс, то создаются две жесткие ссылки на файлы
“dbmfile.dir
” и
“dbmfile.pag
”, при использовании родного интерфейса исходное имя не изменяется.
3. Пакет DB от Беркли, при работе через
“ndbm
” совместимый интерфейс, оперирует единственным файлом
“dbmfile.db
”, но выглядит для программиста также как и традиционная
“ndbm
” реализация.
4. Если пакет от Беркли используется в родном режиме, он оперирует одним файлом
“dbmfile
”; интерфейс программирования несколько отличен от
“ndbm
”.
5. Углубляясь далее – есть несколько DB пакетов от Беркли. Версия 1.85 считалась долгое время стабильной, версии 2.x и 3.x были текущими, последняя версия нумерована как 4.x. Поддержка некоторых, более ранних версий прекращена. Все версии Berkeley DB могут быть получены на http://www.sleepycat.com/.
6. Еще одна библиотека, с названием
“tdb
”, доступна по адресу: http://download.sourceforge.net/tdb. Она использует собственный интерфейс, и, также, оперирует одним файлом.
Exim и его утилиты могут быть скомпилированы для использования любого из вышеперечисленных интерфейсов. Что бы использовать пакеты от Беркли, в родном режиме вы должны добавить строку USE_DB в файле конфигурации (обычно
“Local/Makefile
”). Например:
|
Точно так же, для использования gdbm, Вы добавляете строку USE_GDBM, а для tdb. USE_TDB. При использовании нескольких интерфейсов вы получите ошибку.
“
На низком уровне, при построении конфигурации не устанавливается ни одна из этих опций, таким образом присваивается интерфейс типа (1). Однако, конфигурационные файлы для некоторых операционных систем (например BSD и Linux) могут автоматически настраиваться для (4) типа, включая в себя USE_DB
” по умолчанию; в файлы конфигурации для Cygwin включается опция
“USE_GDBM
”. Все, что вы определите в
“Local/Makefile
”, отменяет значения принимаемые по умолчанию.
Так же как и определение USE_DB, USE_GDBM, или USE_TDB, может возникнуть необходимость добавить DBMLIB, что бы вызвать включение этой библиотеки для следующих установок:
|
Такие настройки будут работать, если библиотека DBM установлена в стандартной директории. В тех случаях, когда это не так, файлы c заголовками для библиотеки могут также находиться не в директории принятой по умолчанию, тогда Вам придется определить директиву INCLUDE и указать местоположение файла с заголовками для библиотеки, а так же определить полный путь к библиотеке, как в этом примере:
|
Более детальное рассмотрение разных DBM библиотек находиться в файле
“doc/dbm.discuss.txt
” дистрибутива Exim.
4.5 Предсборочная конфигурация
Перед началом сборки Exim'a должен быть создан локальный файл конфигурации -
“Local/Makefile
”, в котором должны быть определены независящие от ОС опции. Шаблон для этого файла, поставляется как файл
“src/EDITME
”, и содержит в себе полные описания всех параметров настройки. Эти описания здесь не рассматриваются. Если вы собираете Exim впервые, то самый лучший способ скопировать
“rc/EDITME
” в
“Local/Makefile
”, затем его прочитать отредактировать соответствующим образом.
“
Есть три параметра в настройках, которые Вы должны оставить, потому, что Exim не соберется без них. Это - местоположение конфигурационного файла (CONFIGURE_FILE), директории, куда будут инсталлированы бинарные файлы Exim (BIN_DIRECTORY), и пользователь Exim (EXIM_USER и возможно также, EXIM_GROUP). Значения CONFIGURE_FILE в списке файлов могут разделятся двоеточием, Exim использует первое существующее из них.
Также есть несколько других параметров, которые могут быть определены во время сборки или выполнения, для того чтобы разрешить использование одного и того же бинарного файла нескольким машинам. Однако, если местоположение директории spool или log (если она не внутри директории spool) фиксировано, то рекомендуется указать его в файле Local/Makefile
”, вместо рабочей конфигурации, что бы ошибки, которые возникают на стадии запуска (например «кривой» файл конфигурации) Exim могли быть отражены в log файле.
Интерфейсы Exim'а для вызова антивирусов и спамфильтров из access control lists, не собираются по умолчанию. Если вы хотите включить эти программы, вам нужно вписать следующую строку:
|
в файле
“Local/Makefile
”. Более детально об этих возможностях в главе 41.
“
Если вы собираетесь собирать Exim монитор, необходим схожий процесс конфирурирования. Файл exim_monitor/EDITME
” должен быть отредактирован в соответствии с вашими параметрами установки и сохранен под именем
“Local/eximon.conf
”. Если вы довольствуетесь настройками по умолчанию, описанными в файле
“exim_monitor/EDITME
”, то
“Local/eximon.conf
” может быть пустым, но он должен существовать.
“
Это вся конфигурация, которая может быть необходима для большинства известных операционных систем. Однако, процесс сборки настроен таким образом, что очень легко изменить настройки принимаемые по умолчанию операционной системой. Например, изменить компилятор C, которым по умолчанию является gcc
”. Смотрите подраздел 4.12 о том, как это сделать.
4.6 поддержка
“iconv()
”
Содержание заголовка сообщения может быть закодировано согласно RFC-2047. Это позволяет передавать символы отсутствующие в таблице ASCII символов и отмечать их, как являющихся частями этой таблицы. Когда Exim проверяет строки заголовка с помощью
“$h_
” механизма, он расшифровывает их и переводит в специфический набор символов (по умолчанию ISO-8859-1). Перевод возможен, если операционная система поддерживает функцию
“iconv()
”.
“
Однако, некоторые операционные системы, которые поставляются с функцией iconv()
”, не поддерживают очень много преобразований. Библиотека GNU
“libiconv
” (доступна по адресу http://www.gnu.org/software/libiconv/) может быть установлена на таких системах, что бы исправить этот недостаток, так же как и на системах, которые не поддерживают
“iconv()
” вообще. После инсталляции
“libiconv
” вы должны добавить
|
в файл
“Local/Makefile
”, и пересобрать Exim.
4.7 Включение TLS/SSL шифрования
Exim может быть собран с поддержкой шифрованных SMTP соединений, использующих команду STARTSSL согласно RFC 2487. Он так же поддерживает клиентское ПО, которое ожидает немедленного соединения на нестандартном порту (смотрите
“tls_on_connect_ports
” во время выполнения и опцию
“tls-on-connect
” командной строки).
Если вы хотите собрать Exim c поддержкой TLS, то вы должны сперва инсталлировать библиотеку OpenSSL или GnuTLS. В Exim отсутствует непосредственная поддержка SSL соединения.
Если OpenSSL инсталлирована, то вы должны добавить:
|
в файл
“Local/Makefile
”. Вам может также потребуется определить путь к библиотекам Open SSL и include файлам. Например:
|
Если используется GnuTLS:
|
в файле
“Local/Makefile
” и, опять таки, вам может потребоваться указать полный путь к включаемым файлам и библиотекам. Например:
|
Вам не нужно устанавливать TLS_INCLUDE'ы, если такая директория уже определена в INCLUDE. Более подробное описание того, как сконфигурировать Exim с поддержкой TLS дано в главе 39.
4.8 Использование tcpwrappers
Exim может быть слинкован с библиотекой
“tcpwrappers
” для проверки входящих запросов SMTP с использованием файлов
“tcpwrappers
”. Данная возможность может использоваться в качестве альтернативы собственным средствам Exim'а для проверки обеспечения, которое использует
“tcpwrappers
” в других целях. Для того, что бы сделать это, вам нужно внести строку USE_TCP_WRAPPERS в файл
“Local/Makefile
”. Убедитесь что файл
“tcpd.h
” доступен во время компиляции, а библиотека
“libwrap.a
” доступна во время линковки, включая
“-lwrap
” в EXTRALIBS_EXIM. Для примера, если
“tcpwrappers
” инсталлирован в
“/usr/local
”, вы должны внести соответсвующие строки:
|
в файл
“Local/Makefile
”. Имя, используемое в файле
“tcpwrappers
” - «exim». Например, строка:
|
в файле
“/etc/hosts.allow
” разрешает соединения от локального хоста, от подсети 192.168.1.0/24 и от всех хостов в
“friendly.domain.example
”. Остальные соединения запрещаются. Для более детальной информации загляните в документацию
“tcpwrappers
”.
4.9 Включение поддержики IPv6
Exim содержит код для использования в системах с поддержкой Ipv6. Установите значение HAVE_IPV6=YES в файле
“Local/Makefile
”, чтобы код поддерживающий Ipv6 был включен; также может потребоваться установка IPV6_INCLUDE и IPV6_LIB в системах, где поддержка Ipv6 не полностью включена в библиотеки и файлы include.
“
Два различных типа записи DNS были определены для поддержки адресов Ipv6. AAAA записи (аналоги A записей Ipv4) используются в настоящий момент и, похоже, их использование стало массовым. Другой тип записи называемый A6 расценивается как более лучший, нежели AAAA, потому как он более гибок. Однако он считается более сложным, и его статус был уменьшен до «экспериментального». Доподлинно не известно, использует ли кто-либо записи A6. Exim поддерживает A6 записи, если вы установили SUPPORT_A6=YES в файл Local/Makefile
”. Поддержка не проверялась.
4.10 Процесс сборки
Как только
“Local/Makefile
” (и
“Local/eximon.conf
”, если необходимо) будет создан, запустите make в директории с Exim. Определяется архитектура компьютера и операционная система, и создается директория, в которой происходит сборка. Например, компьютер Sun с операционной системой Solaris 8 создаваемая директория будет именоваться
“build-SunOS5-5.8-sparc
”. Символические ссылки на исходные файлы будут созданы в директории, где происходит сборка.
“
Внимание: флаг -j
” не должен использоваться с make; процесс сборки завершиться с ошибкой, если он установлен.
“
Если make
” запущен впервые, то вызывается скрипт, который создает
“make
”-файл внутри директории, где происходит сборка, используя конфигурационный файл в директории
“Local
”. Новый make файл передается новому экземпляру
“make
”. Он выполняет работу по созданию сервисных скриптов, затем компилирует и линкует бинарный файл монитора Exim (если сконфигурировано), некоторое количество утилит и, наконец, сам Exim. Команда
“make makefile
” используется для принудительного создания нового
“make
”-файла в директории со сборкой, если это необходимо.
Если у вас есть затруднения со сборкой Exim, то загляните в файл README для вашей операционной системы и поглядите в FAQ, где поясняются часто встречающиеся проблемы.
4.11 Вывод команды
“make
”
Выводом команды
“make
” являются очень длинные и нечитабельные строки. Поэтому данные вывода "make" не используются, а заменяются данными, схожими с теми, которые вы видите при компиляции Linux ядра версии 2.6, только короткие строки для каждого скомпилированного или слинкованного модуля. Однако, возможно получить полный вывод, вызывая
“make
” следующим образом:
|
Значение FULLECHO по умолчанию -
“@
”. Оно подавляет оригинальный вывод
“make
”. Когда вы запрашиваете полный вывод выходных данных, она расширяет стандартный выходные данные
“make
”.
4.12 Переопределение опций при сборке Exim
Главный
“make
” файл, который создается в начале процесса сборки, включает содержимое некоторого количества файлов с определенными конфигурационными значениями, сопровождаемыми фиксированным набором
“make
” инструкций. Если значение установлено неоднократно, последнее значение отвергает все предыдущие. Это является удобным способом изменения настроек по умолчанию. Файлы идут в следующем порядке:
|
где
“<ostype>
” - тип операционной системы, и
“<archtype>
” - тип архитектуры компьютера. Local/Makefile должен существовать, иначе процесс сборки будет завершен с ошибкой, остальные три
“Local
” файла опциональны и зачастую могут отсутствовать.
“
Значения, используемые, для <ostype>
” и
“<archtype>
” получены от скриптов
“scripts/os-type
” и
“scripts/arch-type
”, соответственно. С помощью переменных EXIM_OSTYPE и EXIM_ARCHTYPE Вы можете задать значения
“<ostype>
” и
“<archtype>
” принудительно. Иначе скрипты пытаются получить значения из команды uname. Если это сделать не удается, используются значения переменных shell
“OSTYPE
” и
“ARCHTYPE
”. Тогда применяются некоторые быстрые преобразования для получения стандартных имен, которые распознаются Exim'ом. Вы можете запускать эти скрипты напрямую из шелла, для того, чтобы выяснить, какие значения используются в вашей системе.
“
OS/Makefile-Default
” содержит комментарии к переменным, которые там находятся. Некоторые (но не все) рассматриваются ниже. Если что-то нужно изменить, посмотрите содержимое этого файла и содержимое файла make для вашей операционной системы (
“OS/Makefile-<ostype>
”), чтобы узнать, какие настройки используются по умолчанию.
“
Если вам нужно изменить любое значение в OS/Makefile-Default
” или в
“OS/Makefile-<ostype>
” или добавить новое, вам не нужно менять оригинальные файлы. Вместо этого вам нужно записать необходимые изменения в соответствующем файле
“Local
”. Для примера, когда сборка происходит в операционной системе Tru64-Unix (бывший Digital UNIX, бывший DEC-OSF1), необходимо изменить компилятор языка
“C
” с
“gcc
” на
“сс
”. Также компилятор должен вызываться с опцией
“-stdl
” для того, чтобы поддерживались некоторые особенности Стандартного C, которые Exim использует (большинство других компиляторов распознают Стандартный C по умолчанию). Для этого нужно создать файл
“Local/Makefile-OSF1
”, содержащий следующие строки:
|
Если компиляция производится для одной операционной системы, то будет гораздо проще записать необходимые строки в
“Local/Makefile
”.
Хранение локальных файлов конфигурации отдельно от файлов, идущих с дистрибутивом, позволяет проще передавать настройки новым версиям Exim, путем копирования их в директорию Local.
Exim содержит поддержку LDAP, NIS, NIS+, и других видов поиска, но не во все системы инсталлированы эти компоненты, поэтому по умолчанию данный код не включается в бинарный файл. Все различные типы поиска в файлах и базах данных, которые поддерживает Exim, собираются как отдельные модули, и собираются, только если установлены соответствующие опции компиляции. Для LDAP, NIS, NIS+ параметры файла Local/Makefile следующие:
|
похожие установки применимы для других типов поиска. Они перечислены в файле
“src/EDITME
”. Во всех случаях соответствующие включаемые файлы и библиотеки интерфейсов должны быть установлены до начала компиляции Exim'a. Однако, есть некоторые опциональные типы поисков (такие как cdb), код для которых содержится в Exim, и не требуется никаких внешних библиотек и включаемых файлов. Когда определённый тип поиска не включен в бинарный файл, попытка сконфигурировать Exim для использования такого типа вызовет ошибку.
В состав Exim'a может быть включён встроенный интерпретатор Perl, который позволит вызывать процедуры Perl при обработке строк. Включение этой возможности:
|
должно быть установлено в файле
“Local/Makefile
”. Более подробно это рассматривается в главе 12.
“
Расположение библиотек X11 отличается для различных операционных систем. Сам по себе Exim не использует X11, но если вы компилируете монитор Exim, то библиотеки X11 должны быть доступны. Расположение библиотек X11 можно настроить в OS/Makefile-Default
”:
|
Эти значения сбрасываются в файлах конфигурации некоторых операционных систем. Например, в файле
“OS/Makefile-SunOS5
”:
|
Если вам нужно отменить значения по умолчанию, запишите эти значения переменных в файл
“Local/Makefile-<ostype>
”.
“
Если вам необходимо добавить какую-либо дополнительную библиотеку, задайте значение для опцию EXTRALIBS, которая используется при линковке, но по умолчанию не включена. Напротив, EXTRALIBS_EXIM используется только для линковки бинарного файла Exim, а не для дополнительных утилит.
Так же есть DBMLIB, который появляется в командах линковки бинарного файла, использующего функции DBM (смотрите раздел 4.4). И, наконец, есть EXTRALIBS_EXIMON которая появляется только на этапе линковки бинарного файла монитора Exim, и может использоваться, например, для добавления дополнительных библиотек X11.
Команда make
” справляется с пересборкой Exim'a корректно, если отредактированы конфигурационные файлы. Однако, если дополнительный конфигурационный файл был удален, то необходимо создать соответсвующий обязательный файл (то есть,
“Local/Makefile
” или
“Local/eximon.conf
”) перед пересборкой.
4.13 OS-cпецифические заголовки
Директория
“OS
” содержит файлы, которые именуются, как
“os.h-<ostype>
”. Это системо-зависимые файлы заголовков C, которые не должны меняться. Есть список макропараметров которые находятся в файле
“OS/os.configuring
”, в которые нужно посмотреть, если вы портируете Exim на новую операционную систему.
4.14 Переопределение опций при сборке монитора
Похожие процедуры используются для сборки монитора Exim. Необходимые файлы:
|
Так же как и сам Exim, последние три файла необязательно должны присутствовать, файл
“OS/eximon.conf-<ostype>
” так же необязателен. Значения по умолчанию в файле
“OS/eximon.conf-Default
” могут быть отменены динамически, установкой переменных с теми же именами, которые используются EXIMON_. Например, установка EXIMON_LOG_DEPTH, отменяет значение LOG_DEPTH при загрузке.
4.15 Установка бинарных файлов и скриптов Exim'а
Команда
“make install
” запускает скрипт
“exim_install
” без аргументов. Скрипт копирует бинарные файлы и другие скрипты в директорию чье имя определено в переменной BIN_DIRECTORY в файле
“Local/Makefile
”. Инсталляционный скрипт замещает файлы только в том случае, если копируемые файлы более новые, нежели, установленные. Владельцем бинарного файла Exim c установленым битом
“setuid
”, должен являться root, для обычной конфигурации. Поэтому вы должны запустить
“make install
” от имени пользователя root, что бы правильно настроить права бинарного файла Exim. Однако, в некоторых особенных ситуациях, (например, когда хост не осуществляет локальных доставок) можно запускать Exim без бита
“setuid
”. (для более детальной информации смотрите главу 52).
“
Загрузочный файл конфигурации Exim'а определяется переменной CONFIGURE_FILE в файле Local/Makefile
”. Если указывается один файл и он не существует, то по умолчанию файл
“src/configure.default
” копируется инсталляционным скриптом. Если CONFIGURE_FILE содержит список разделенный двоеточием, то по умолчанию ничего установлено не будет.
“
Одно изменение делается в конфигурационном файле устанавливаемым по умолчанию: конфигурация по умолчанию содержит роутер, который использует системный файл псевдонимов. Путь к этому файлу устанавливается в переменной SYSTEM_ALIASES_FILE в файле Local/Makefile
” (
“/etc/aliases
” по умолчанию). Если файл системных псевдонимов отсутствует то инсталляционный скрипт создает его и выводит предупреждение пользователю.
“
Созданный файл не содержит псевдонимов, но он содержит комментарии о псевдонимах, которые должны существовать. Почтовые псевдонимы по умолчанию хранятся в /etc/aliases. Однако, некоторые операционные системы используют /etc/mail/aliases
”. Вы должны убедиться справедливо ли это, по отношению к вашей операционной системе и, при необходимости, изменить конфигурацию Exim'а.
“
Конфигурация по умолчанию использует домен localhost'а, как единственный локальный домен и настраивает локальную доставку в общую директорию /var/mail
” исполняясь как локальный пользователь. Системные псевдонимы и
“.forward
” файлы в домашних директориях пользователей поддерживаются, но поддержка NIS или NIS+ не используется. Домены отличные от домена локального хоста маршрутизируются с помощью DNS, с доставкой через SMTP.
Возможно инсталлировать Exim для особых целей (например распространения бинарного файла), в нестандартное место. Это сделать это командой:
|
Этот путь будет применяться ко всем файлам, кроме файла с системными именами который присутствует в конфигурации по умолчанию (если файл псевдонимов по умолчанию создан, он модифицируется). Для обратной совместимости используется ROOT, если DESTDIR не установлена, однако это не одобряется.
“
Запуск make install
” не скопирует Exim скрипт
“convert4r4
”. Вы должны запустить его лишь один раз, (если вы апгрейдите Exim 3), а второй не является частью Exim. Ни один из файлов документации в директории doc не будет скопирован, кроме информационных файлов которые вы установили в переменной INFO_DIRECTORY как описано в разделе 4.16, ниже.
“
Для утилит, старые версии переименовываются с добавлением суффикса .O
” к именам файлов. Бинарный файл Exim обрабатывается по-другому. Он инсталлируется с именем которое включает в себя номер версии и номер компиляции, например
“exim-4.70-1
”. Скрипт создает символическую ссылку
“exim
” на бинарный файл Exim. Если вы обновляете предыдущую версию, то скрипт заботится о том, что бы имя
“exim
” никогда не отсутствовало в директории (как видимое другими процессами).
“
Если вы хотите увидеть, что происходит во время команды make install
”, без непосредственной инсталляции, вы можете добавить ключ -n в инсталляционный скрипт следующей командой:
|
Содержимое переменной INSTALL_ARG передается инсталляционному скрипту. Вам не потребуются права root, что бы запустить этот тест. Вы также можете запустить инсталляционный скрипт непосредственно из директории build
”. Например в верхней директории Exim используйте следующую команду:
|
Существуют две опции которые распознаются инсталляционным скриптом:
“-no_chown
” - пропускает вызов смены владельца инсталлированого бинарного файла на root и установку бита setuid.
“-no_symlink
” - пропускает процедуру создания символической ссылки на бинарный файл
“exim
”.
INSTALL_ARG может быть использована, для передачи этих опций скрипту. Например:
|
Инсталляционному скрипту можно так же передать аргументы, определяющие какие файлы должны быть скопированы. Например, что бы инсталлировать только бинарный файл exim, без символических ссылок, нужно использовать следующую команду:
|
4.16 Инсталляция документации
Не все системы используют GNU
“info
” для документации и по этой причине, исходники Texinfo документации не включены в главный дистрибутив. Они доступны отдельно на ftp сайте (смотрите раздел 1.6).
“
Если вы определили INFO_DIRECTORY в файле Local/Makefile
” и исходники Texinfo документации найдены в дереве исходников,
“make install
” автоматически создаст info файлы и инсталлирует их.
4.17 Определение директории spool
При загрузке Exim пытается создать директорию spool, если она отсутствует. gid и uid Exim'a применяются к директории spool. Поддиректории в директории spool создаются автоматически, по мере необходимости.
4.18 Тестирование
Проинсталлировав Exim вы можете проверить что конфигурационный файл синтаксически верен, запустив следующую команду, которая предполагает что путь к бинарному файлу Exim находится в PATH.
|
Если в файле конфигурации содержатся ошибки, Exim выведет ошибку. В противном случае, он выведет номер версии и дату сборки, какая DBM библиотека используется, информацию о драйверах и других программных модулях включённых в бинарный файл. Используются простые тесты с адресом в качестве параметра. Например:
|
должен подтвердить что распознается локальный почтовый ящик, и:
|
при использовании удаленного. Теперь проверим доставку почты удаленно и локально. Это может быть сделано с помощью пропуска сообщения непосредственно через Exim, без прохождения через пользовательскую почтовую программу. Например:
|
Опция
“-v
” заставляет Exim выводить дополнительную информацию о его работе. В этом случае, вы должны увидеть три строки отчета, одно о прибытии сообщения, одно о его доставке, и одно содержащее
“Completed
”.
“
Если вы сталкиваетесь с проблемами, загляните в log файлы (mainlog
” и
“paniclog
”) что бы проверить наличие какой-либо полезной информации в них. Другой источник информации, запуск Exim в отладочном режиме, с опцией
“-d
”. Если сообщение застряло в spool'е Exim'а, вы можете осуществить принудительную доставку в отладочном режиме c помощью команды:
|
Для того что бы это сделать, вы должны быть root'ом или «admin user». Опция
“-d
” выводит очень много информации, но вы можете вырезать специальные области. Например, если вы используете
“-d-all+route
” то будет выдана только отладочная информация о маршрутизации письма. (Для дополнительных деталей о опции
“-d
”, смотрите раздел 5.)
“
Одна проблема, которая обнаружилась на некоторых этапах, - невозможность локальной доставки в директорию с общим ящиком, потому как она не имеет установленный sticky bit
”. По умолчанию Exim пытается создать lock-файл (файл-признак блокировки - прим. переводчика), до записи в файл-почтовый ящик и если он не может создать файл блокировки, то почта не доставляется. Это можно обойти путем присвоения директории
“sticky bit
” или создавая определенную группу для локальной доставки и разрешить этой группе доставку в эту директорию (смотрите выше про переменную
“local_delivery
” в конфигурационном файле). Другой подход к конфигурированию Exim, не использовать файлы блокировки, а использовать вместо этого функцию
“fcntl()
”. Однако вы должны делать это только если уверены, что пользовательская почтовая программа так же используют
“fcntl()
”. Для более подробной информации об этих проблемах обратитесь к главе 26.
“
Ещё одна вещь, которая не может быть протестирована в системе, в которой уже запущен MTA - это получение входящей SMTP почты на стандартном порту SMTP. Однако, опция -oX
” может быть использована для запуска демона Exim, который слушает другой порт, или может использоваться inetd. Опция
“-bh
” и утилита
“exim_checkaccess
” может быть использована для проверки политик на входящую SMTP почту.
Проверка новой версии в системе, на которой уже установлен Exim может быть легко произведена сборкой бинарного файла с другим значением переменной CONFIGURE_FILE. Внутри конфигурационного файла, все файлы и директории с именами которые использует Exim могут быть изменены, дабы сохранить чистоту версии.
4.19 Замещение другого MTA Exim'ом
Собранный и впервые установленный Exim очень часто не является MTA используемым по умолчанию. Путь к MTA, который вызывает пользовательский почтовый агент, может быть
“/usr/sbin/sendmail
” или
“/usr/lib/sendmail
” (в зависимости от системы) и необходимо указать использование Exim'а, что бы MUA могли передавать письма Exim'у. Обычно это делается с помощью переименования любого существующего файла
“/usr/sbin/sendmail
” или
“/usr/lib/sendmail
” и создания символической ссылки c тем же именем на бинарный файл
“exim
”. Хорошей идеей является удаление setuid и снятие флага x со старого MTA. Необходимо остановить и перезапустить почтового демона, если он был загружен.
“
Некоторые операционные системы предоставляют иные пути переключения на другие MTA. Например, если вы используете FreeBSD, вам нужно отредактировать файл etc/mail/mailer.conf
” вместо создания символической ссылки, как было только что описано. Содержание этого файла, для загрузки Exim:
|
Как только вы сделали символическую ссылку, или отредактировали
“/etc/mail/mailer.conf
” ваш инсталлированый Exim «ожил». Проверьте это, получив письмо вашей любимой почтовой программой.
“
Вы должны осознавать, что скажете пользователям по поводу смены MTA. Exim может иметь разную совместимость с тем, что ранее использовалось, и могут быть различия в сообщениях командной строки и в отторгнутых сообщениях. Если вы разрешаете Вашим пользователям использовать возможности фильтрования Exim'а, сделайте доступным для них документ с названием Интерфейс Exim для фильтрования почты
” (
“Exim’s interface to mail filtering
”).
4.20 Обновление Exim
Если у вас уже загружен Exim на вашем хосте, после инсталляции новая версия автоматически доступна для использования MUA или других программ которые вызывают MTA напрямую. Однако, если у вас загружен демон Exim, то вам нужно отправить ему HUP сигнал, для того, что бы он перезагрузил себя и загрузил новый бинарный файл. Вы не должны прекращать обработку почты для того что бы инсталлировать новую версию Exim. Инсталляционный скрипт не модифицирует существующий конфигурационный файл.
4.21 Остановка демона Exim на Solaris'е
Стандартной командой остановки демона на Solaris'е является:
|
Если
“/usr/lib/sendmail
” является символической ссылкой, скрипт не сможет остановить Exim, потому, что он использует команду
“ps -e
” и
“grep
” для вывода текста «sendmail», а ее не будет, потому что настоящее имя программы («exim») возвращается командой ps с этими опциями. Решение состоит в том, что бы заменить эту строку на строку получающую идентификатор системного процесса, например:
|
который получим из файла в который Exim сохраняет его.
Стоит отметить, что остановка демона, не означает остановки Exim. Сообщения все еще могут получаться от локальных процессов и если автоматическая доставка сконфигурирована (настройки по умолчанию), то доставка будет происходить.
translated by Andy
verifying by lissyara
verifying by Gerk
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK