|
|
www.lissyara.su
—> документация
—> EXIM
—> 4.62
—> часть 4
4. Сборка и инсталляция Exim
4.1 Распаковка
Exim распространяется как bzip или gzip tar файл, который при распаковке создает директорию с именем настоящего релиза (например “exim-4.62 ”) куда помещаются следующие файлы:
файл
|
описание
|
ACKNOWLEDGMENTS
|
содержит слова благодарности
|
CHANGES
|
содержит указания на изменения в документе
|
LICENCE
|
GNU лицензия
|
Makefile
|
главный make файл
|
NOTICE
|
условия использования Exim
|
README
|
список файлов; директорий и небольшие инструкции по сборке
|
|
Другие файлы, чьи имена начинаются словом “README ” могут так же присутствовать.
файл
|
описание
|
Local
|
пустая директория для локальных файлов
|
OS
|
специфические файлы для операционных систем
|
doc
|
документация
|
exim_monitor
|
исходные файлы exim monitor'а
|
scripts
|
скрипты использующиеся для сборки
|
src
|
исходный код
|
util
|
независимые утилиты
|
|
Главные утилиты содержаться в “src ” директории, и собираются вместе с бинарным файлом exim. Директория “util ” содержит несколько дополнительных скриптов, которые могут быть полезны на некоторых этапах.
4.2 Разнообразие архитектур и операционных систем
Процесс сборки exim'а устроен таким образом, что бы облегчить получение бинарных файлов для разных архитектур и операционных систем из одного и того же набора исходных кодов. Компилирование происходит не в директории “src ”. Вместо этого создается “build directory ”, для различных операционных систем. Символические ссылки инсталлируются в директорию, где происходит сборка. В большинстве случаев exim способен распознать архитектуру компьютера и операционную систему, но в случае необходимости, это может быть изменено.
4.3 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. Если пакет от Беркли используется в родном режиме, он оперирует одним файлом “ndbm ”dbmfile; интерфейс программирования несколько отличен от “ndbm ”.
5. Углубляясь далее – есть несколько DB пакетов от Беркли. Версия 1.85 считалась долгое время стабильной, версии 2.x и 3.x были текущими, последняя версия нумерована как 4.x. Поддержка некоторых, более ранних версий прекращена. Все версии 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, что бы вызвать включение этой библиотеки для следующих установок:
DBMLIB = -ldb
DBMLIB = -ltdb
| Такие настройки будут работать, если библиотека DBM установлена в стандартной директории. В тех случаях, когда это не так, файлы c заголовками для библиотеки могут также находиться не в директории принятой по умолчанию, тогда Вам придется определить директиву INCLUDE и указать местоположение файла с заголовками для библиотеки, а так же определить полный путь к библиотеке, как в этом примере:
INCLUDE=-I/usr/local/include/db-4.1
DBMLIB=/usr/local/lib/db-4.1/libdb.a
| Более детальное рассмотрение разных DBM библиотек находиться в файле “doc/dbm.discuss.txt ” в дистрибутиве Exim.
4.4 Предсборочная конфигурация
Перед сборкой Exim, локальный файл конфигурации определяет опции независимые от любой операционной системы, которые будут созданы, в файле “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 ”. Более детально об этих возможностях в главе 40.
Если вы собираетесь собирать Exim монитор, необходим схожий процесс конфирурирования. Файл “exim_monitor/EDITME ” должен быть отредактирован в соответствии с вашими параметрами установки и сохранен под именем “Local/eximon.conf ”. Если вы довольствуетесь настройками по умолчанию, описанными в файле “exim_monitor/EDITME ”, то “Local/eximon.conf ” может быть пустым, но он должен существовать.
Это вся конфигурация, которая может быть необходима для большинства известных операционных систем. Однако, процесс сборки настроен таким образом, что очень легко изменить настройки принимаемые по умолчанию операционной системой. Например, изменить компилятор C, которым по умолчанию является “gcc ”. Смотрите подраздел 4.11 о том, как это сделать.
4.5 поддержка “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.6 Включение TLS/SSL шифрования
Exim может быть собран с поддержкой шифрованных SMTP соединений, используя STARTSSL команду согласно RFC 2487. Он так же поддерживает клиентское ПО которое ожидает немедленного соединения на нестандартном порте (смотрите “tls_on_connect_ports ” во время выполнения и “tls-on-connect ” опцию командной строки).
Если вы хотите собрать Exim c поддержкой TLS, то вы должны сперва инсталлировать OpenSSL или GnuTLS библиотеку. В Exim отсутствует непосредственная поддержка SSL соединения.
Если OpenSSL инсталлирована, то вы должны добавить:
SUPPORT_TLS=yes
TLS_LIBS=-lssl -lcrypto
| в файл “Local/Makefile ”. Вам может так же потребуется определить путь к библиотекам Open SSL и include файлам. Например:
SUPPORT_TLS=yes
TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto
TLS_INCLUDE=-I/usr/local/openssl/include
| Если используется GnuTLS:
SUPPORT_TLS=yes
USE_GNUTLS=yes
TLS_LIBS=-lgnutls -ltasn1 -lgcrypt
| в файле “Local/Makefile ” и опять таки, вам может потребоваться указать полный путь к включаемым файлам и библиотекам. Например:
SUPPORT_TLS=yes
USE_GNUTLS=yes
TLS_LIBS=-L/usr/gnu/lib -lgnutls -ltasn1 -lgcrypt
TLS_INCLUDE=-I/usr/gnu/include
| Вам не нужно устанавливать TLS_INCLUDE если такая директория уже определена в INCLUDE. Более подробное описание, как сконфигурировать Exim с поддержкой TLS дано в главе 38.
4.7 Использование tcpwrappers
Exim может быть слинкован с библиотекой “tcpwrappers ”, что бы проверять входящие запросы SMTP используя файлы “tcpwrappers ”. Данная возможность может использоваться в качестве альтернативы собственным средствам Exim'а для проверки обеспечения которое использует “tcpwrappers ” в других целях. Для того что бы сделать это, вам нужно внести строку USE_TCP_WRAPPERS в файл “Local/Makefile ”, убедитесь что файл “tcpd.h ” доступен во время компиляции, а библиотека “libwrap.a ” доступна во время линковки, включая “-lwrap ” в EXTRALIBS_EXIM. Для примера, если “tcpwrappers ” инсталлирован в “/usr/local ” вы должны внести соответсвующие строки:
USE_TCP_WRAPPERS=yes
CFLAGS=-O -I/usr/local/include
EXTRALIBS_EXIM=-L/usr/local/lib -lwrap
| в файл “Local/Makefile ”. Имя используемое в файле “tcpwrappers ” - «exim». Например строка:
exim : LOCAL 192.168.1. .friendly.domain.example
| в файле “/etc/hosts.allow ” разрешает соединения от локального хоста, от подсети 192.168.1.0/24, и от всех хостов в “friendly.domain.example ”. Остальные соединения запрещаются. Для более детальной информации загляните в документацию “tcpwrappers ”.
4.8 Включение поддержики IPv6
Exim содержит код для использования в системах с поддержкой Ipv6. Установите значение HAVE_IPV6=YES в файле “Local/Makefile ”, что бы код поддерживающий Ipv6 был включен; также может потребоваться установить IPV6_INCLUDE и IPV6_LIB в системах, где поддержка Ipv6 не полностью включена в библиотеки и include файлы.
Два различных типа записи DNS были определены для поддержки адресов Ipv6. AAAA записи (аналоги записей Ipv4) используются в настоящий момент и похоже, использование стало массовым. Другой тип записи называемый A6 расценивается как более лучший, нежели AAAA, потому как он более гибкий. Однако он считается более сложным и его статус был уменьшен до «экспериментального». Доподлинно не известно, использует ли кто-либо записи A6. Exim поддерживает A6 записи, если вы установили SUPPORT_A6=YES в файл “Local/Makefile ”. Поддержка не проверялась.
4.9 Процесс сборки
Как только “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.10 Выходные данные после “make ”
Выходные данные создаваемый “make ” собираются в строки, которые зачастую нечитабельны, ибо они очень длинные. Поэтому нормальные выходные данные не используются, а заменяются данными схожими с теми, которые вы видите при компиляции Linux ядра версии 2.6, только короткие строки для каждого скомпилированного или слинкованного модуля. Однако, возможно получить нормальный вывод вызывая “make ” следующим образом:
Значение FULLECHO по умолчанию “@ ” значение флага, которое подавляет сокращенный вывод “make ”. Когда вы запрашиваете полный вывод выходных данных, она расширяет стандартный выходные данные “make ”.
4.11 Отмена опций при сборке Exim
Главный “make ” файл, который создается в начале процесса сборки, состоит из связи некоторого количества файлов, с определенными конфигурационными значениями, сопровождаемые фиксированным набором “make ” инструкций. Если значение установлено неоднократно, последнее значение отвергает все предыдущие. Это является удобным способом изменения настроек по умолчанию. Файлы которые идут в следующем порядке:
OS/Makefile-Default
OS/Makefile-<ostype>
Local/Makefile
Local/Makefile-<ostype>
Local/Makefile-<archtype>
Local/Makefile-<ostype>-<archtype>
OS/Makefile-Base
| где “<ostype> ” - тип операционной системы, и “<archtype> ” - тип архитектуры компьютера. Local/Makefile должен существовать, иначе процесс сборки будет завершен с ошибкой, остальные три “Local ” файла опциональны, и зачастую, могут быть не нужны.
Значения используемые для “<ostype> ” и “<archtype> ” получены от скриптов “scripts/os-type ” и “scripts/arch-type ”, соответственно. Если так же установлены значения переменных EXIM_OSTYPE или EXIM_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-OSF1 содержащий следующие строки:
Если компиляция производится для одной операционной системы, то будет гораздо проще записать необходимые строки в “Local/Makefile ”.
Хранение локальный файлов конфигурации отдельно, от файлов идущих с дистрибутивом позволяет проще передавать настройки новым версиям Exim, путем копирования их в директорию Local.
Exim содержит поддержку LDAP, NIS, NIS+, и другие виды поисков файла, но не во все системы инсталлированы эти компоненты, поэтому по умолчанию данный код не включается в бинарный файл. Все различные типы файлов и баз данных которые поддерживает Exim, подключены как раздельные модули, которые включаются, если установлены соответствующие опции компиляции. Для LDAP, NIS, NIS+ параметры файла Local/Makefile следующие:
LOOKUP_LDAP=yes
LOOKUP_NIS=yes
LOOKUP_NISPLUS=yes
| похожие установки применимы для других типов поиска. Они перечислены в файле “src/EDITME ”. Во многих случаях некоторые включаемые файлы и библиотеки интерфейсов должны быть установлены до инсталляции Exim'а. Однако, есть некоторые типы поисков (такие как cdb), код для которых содержится в Exim и не требуется никаких внешних библиотек и включаемых файлов. Когда поиск не включен в бинарный файл, попытка сконфигурировать Exim использовать такой тип вызовет ошибку.
Exim может быть слинкован встроенным интерпретатором Perl, позволяющим процедурам Perl, вызывается внутри строк расширения. Включение этой возможности:
должно быть установлено в файле “Local/Makefile ”. Более подробно это рассматривается в главе 12.
Расположение библиотек X11 варьируется между различными операционными системами. Сам по себе Exim не использует X11, но если вы компилируете Exim монитор, то библиотеки X11 должны быть доступны. Последние три переменные определены в “OS/Makefile-Default ”:
X11=/usr/X11R6
XINCLUDE=-I$(X11)/include
XLFLAGS=-L$(X11)/lib
| Они отменяются в некоторых файлах конфигурации операционных систем. Например, в файле “OS/Makefile-SunOS5 ”:
X11=/usr/openwin
XINCLUDE=-I$(X11)/include
XLFLAGS=-L$(X11)/lib -R$(X11)/lib
| Если вам нужно отменить значения по умолчанию, запишите эти значения переменных в файл “Local/Makefile-<ostype> ”.
Если вам необходимо добавить какую либо дополнительную библиотеку положите переменную называемую EXTRALIBS, которая принимается при линковке но по умолчанию не включена. Напротив, EXTRALIBS_EXIM используется только для линковки бинарного файла Exim, а не для дополнительных утилит.
Так же есть DBMLIB, который появляется в командах линковки бинарного файла использующего функции DBM (смотрите раздел 4.3). И наконец, есть EXTRALIBS_EXIMON которая появляется только на этапе линковки бинарного файла монитора Exim, и может использоваться, например, для добавления дополнительных библиотек X11.
Сборочные файлы справляются с пересборкой Exim'а корректно, если отредактированы конфигурационные файлы. Однако, если дополнительный конфигурационный файл удален, то необходимо создать связанный файл (то есть, “Local/Makefile ” или “Local/eximon.conf ”) перед пересборкой.
4.12 OS-cпецифические заголовки
Директория “OS ” содержит файлы, которые именуются, как “os.h-<ostype> ”. Это специфические заголовки C, которые не должны меняться. Есть список макропараметров которые находятся в файле “OS/os.configuring ”, в которые нужно посмотреть, если вы портируете Exim на новую операционную систему.
4.13 Отмена опций при сборке монитора
Схожие процессы используются при сборке монитора Exim. Необходимые файлы:
OS/eximon.conf-Default
OS/eximon.conf-<ostype>
Local/eximon.conf
Local/eximon.conf-<ostype>
Local/eximon.conf-<archtype>
Local/eximon.conf-<ostype>-<archtype>
| Так же как и сам Exim, последние три файла необязательно должны присутствовать, в таком случае файл “OS/eximon.conf-<ostype> ” опционален. Значения по умолчанию в файле “OS/eximon.conf-Default ” могут быть отменены динамически, установкой переменных с теми же именами, которые используются EXIMON_. Например, установка EXIMON_LOG_DEPTH, отменяет значение LOG_DEPTH при загрузке.
4.14 Установка бинарных файлов и скриптов Exim'а
Команда “make install ” запускает скрипт “exim_install ” без аргументов. Скрипт копирует бинарные файлы и другие скрипты в директорию чье имя определено в переменной BIN_DIRECTORY в файле “Local/Makefile ”. Инсталляционный скрипт замещает файлы только в том случае, если копируемые файлы более новые, нежели, установленные. Владельцем бинарного файла Exim должен являться root c установленым битом “setuid ”, для обычной конфигурации. Поэтому вы должны запустить “make install ” от имени пользователя root, что бы таким образом настроить права бинарного файла Exim. Однако, в некоторых особенных ситуациях, (например, когда хост не осуществляет локальных доставок) можно запускать Exim не выставляя “setuid ” root. (для более детальной информации смотрите главу 51).
Загрузочный файл конфигурации 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 для особых целей (например распространения бинарного файла), в специальные пути операционной системы. Можно сделать это командой:
make DESTDIR=/some/directory/ install
| Этот путь будет применяться ко всем файлам, кроме файла с системными именами который присутствует в конфигурации по умолчанию (если файл псевдонимов по умолчанию создан, он модифицируется). Для обратной совместимости используется ROOT, если DESTDIR не установлена, однако это не одобряется.
Запуск “make install ” не скопирует Exim скрипт “convert4r4 ”, или тестовую программу “pcretest ”. Первый из этих скриптов вы запустите только единожды, (если вы апгрейдите Exim 3), а второй не является частью Exim. Ни один из файлов документации в директории doc не будет скопирован, кроме информационных файлов которые вы установили в переменной INFO_DIRECTORY как описано в разделе 4.15, выше.
Для утилит, старые версии переименовываются с добавлением суффикса “.O ” к именам файлов. Бинарный файл Exim обрабатывается по-другому. Он инсталлируется с именем которое включает в себя номер версии и номер компиляции, например “exim-4.62-1 ”. Скрипт создает символическую ссылку c названием “exim ” на бинарный файл Exim. Если вы обновляете предыдущую версию, то скрипт заботится о том, что бы имя “exim ” никогда не отсутствовало в директории (как видимое другими процессами).
Если вы хотите увидеть, что происходит после команды “make install ”, без непосредственной инсталляции, вы можете добавить ключ -n в инсталляционный скрипт следующей командой:
make INSTALL_ARG=-n install
| Содержимое переменной INSTALL_ARG передается инсталляционному скрипту. Вам не потребуются права root, что бы запустить этот тест. В качестве альтернативы вы можете управлять инсталляционным скриптом непосредственно, но это должно быть сделано в директории где происходит сборка. Например в верхней директории Exim используйте следующую команду:
(cd build-SunOS5-5.5.1-sparc; ../scripts/exim_install -n)
| Существуют две опции которые распознаются инсталляционным скриптом:
“-no_chown ” - пропускает вызов смены владельца инсталлированого бинарного файла, на root и вызов установки бита setuid.
“-no_symlink ” - пропускает процедуру создания символической ссылки на бинарный файл “exim ”.
INSTALL_ARG может быть использована, для передачи этих опций скрипту. Например:
make INSTALL_ARG=-no_symlink install
| Инсталляционному скрипту можно так же дать аргументы, определяющие какие должны быть скопированы. Например, что бы инсталлировать только бинарный файл exim, без символических ссылок, нужно использовать следующую команду:
make INSTALL_ARG='-no_symlink exim' install
|
4.15 Инсталляция документации
Не все системы используют GNU “info ” для документации и по этой причине, исходники Texinfo документации не включены в главный дистрибутив. Они доступны отдельно на ftp сайте (смотрите раздел 1.6).
Если вы определили INFO_DIRECTORY в файле “Local/Makefile ” и исходники Texinfo документации найдены в дереве исходников, запуск “make install ” автоматически создаст info файлы и инсталлирует их.
4.16 Определение директории spool
При загрузке Exim пытается создать директорию spool, если она отсутствует. gid и uid применяются к директории spool те же, что и у Exim. Поддиректории в директории spool создаются автоматически, по мере необходимости.
4.17 Тестирование
Проинсталлировав Exim вы можете проверить что конфигурационный файл синтаксически верен, запустив следующую команду, которая предполагает что путь к бинарному файлу Exim находится в PATH.
Если в файле конфигурации содержатся ошибки, Exim выведет ошибку. В противном случае, он выведет номер версии и дату сборки, какая DBM библиотека используется, информацию о драйверах и других программных модулях включённых в бинарный файл. Используются простые тесты с адресом в качестве параметра. Например:
exim -bt <local username>
| должен подтвердить что распознается локальный почтовый ящик, и:
exim -bt <remote address>
| при использовании удаленного. Теперь проверим доставку почты удаленно и локально. Это может быть сделано с помощью пропуска сообщения непосредственно через Exim, без прохождения через пользовательскую почтовую программу. Например:
exim -v postmaster@your.domain.example
From: user@your.domain.example
To: postmaster@your.domain.example
Subject: Testing Exim
This is a test message.
^D
| Опция “-v ” заставляет Exim выводить проверку происшедшего. В этом случае, вы должны увидеть три строки отчета, одно о прибытии сообщения, одно о его доставке, и одно содержащее “Completed ”.
Если вы сталкиваетесь с проблемами, загляните в log файлы ( “mainlog ” и “paniclog ”) что бы проверить наличие какой-либо полезной информации в них. Другой источник информации, запуск Exim в отладочном режиме, с опцией “-d ”. Если сообщение застряло в spool'е Exim'а, вы можете осуществить принудительную доставку в отладочном режиме c помощью команды:
exim -d -M <exim-message-id>
| Для того что бы это сделать, вы должны быть root'ом или «admin user». Опция “-d ” выводит очень много информации, но вы можете вырезать специальные области. Например, если вы используете “-d-all+route ” то будет использована информация только касающаяся пути письма. (Для дополнительных деталей о опции “-d ”, смотрите раздел 5.)
Одна проблема, которая обнаружилась на некоторых этапах, - невозможность локальной доставки в директорию с общим ящиком, потому как она не имеет установленный “sticky bit ”. По умолчанию Exim пытается создать закрытый файл, до записи в файл-почтовый ящик и если он не может создать закрытый файл, то почта не доставляется. Это можно обойти путем присвоения директории “sticky bit ” или создавая определенную группу для локальной доставки и разрешить этой группе доставку в эту директорию (смотрите выше про переменную “local_delivery ” в конфигурационном файле). Другой подход к конфигурированию Exim, не использовать закрытые файлы, вместо этого полагаясь на функцию “fcntl() ”. Однако вы должны делать это только если уверены, что пользовтельская почтовая программа так же используют “fcntl() ”. Для более подробной информации о закрытии обратитесь к главе 26.
Одна вещь, которая не может быть протестирована в системе, в которой уже запущен MTA - это получение входящей SMTP почты на стандартном порту SMTP. Однако, опция “-oX ” может быть использована для запуска демона Exim, который слушает другой порт, или может использоваться inetd. Опция “-bh ” и утилита “exim_checkaccess ” может быть использована для проверки политик на входящую SMTP почту.
Проверка новой версии в системе, на которой уже установлен Exim может быть легко произведена сборкой бинарного файла с другой установкой переменной CONFIGURE_FILE. Внутри конфигурационного файла, все файлы и директории с именами которые использует Exim могут быть изменены, дабы сохранить чистоту версии.
4.17 Замещение другого MTA, Exim'ом
Сборка и инсталляция Exim производящаяся впервые не использует себя по умолчанию. Название MTA который вызывают пользовательский почтовый агент, находится в “/usr/sbin/sendmail ” или “/usr/lib/sendmail ” (в зависимости от системы) и необходимо указать использование Exim'а, что бы mua могли передавать письма Exim'у. Обычно это делается с помощью переименования любого существующего файла в “/usr/sbin/sendmail ” или “/usr/lib/sendmail ” и создания символической ссылки на бинарный файл “exim ”. Хорошей идеей является удаление setuid и снятие флага x со старого MTA. Необходимо остановить и перезапустить почтового демона, если он загружен.
Некоторые операционные системы предоставляют иные пути переключения на другие MTA. Например, если вы используете FreeBSD, вам нужно отредактировать файл “etc/mail/mailer.conf ” вместо создания символической ссылки, как было только что описано. Содержание файла, загружающего Exim следующее:
sendmail /usr/exim/bin/exim
send-mail /usr/exim/bin/exim
mailq /usr/exim/bin/exim -bp
newaliases /usr/bin/true
| Как только вы сделали символическую ссылку, или отредактировали “/etc/mail/mailer.conf ” ваш инсталлированый Exim «ожил». Проверьте это, получив письмо вашей любимой почтовой программой.
Вы должны осознавать, что скажете пользователям по поводу смены MTA. Exim может иметь разную совместимость с тем, что ранее использовалось, и могут быть различия в сообщениях командной строки и в отторгнутых сообщениях. Если вы позволите пользователям использовать возможности фильтрования Exim'а сделать доступным для них документ с названием “Интерфейс Exim для фильтрования почты ” ( “Exim’s interface to mail filtering ”).
4.19 Обновление Exim
Если у вас уже загружен Exim на вашем хосте, сборка и инсталляция новой версии автоматически доступна для использования MUA или других программ которые вызывают MTA напрямую. Однако, если у вас загружен демон Exim, то вам нужно отправить ему HUP сигнал, для того, что бы он перезагрузил себя и загрузил новый бинарный файл. Вы не должны прекращать обработку почты для того что бы инсталлировать новую версию Exim. Инсталляционный скрипт не модифицирует существующий конфигурационный файл.
4.20 Остановка демона Exim на Solaris'е
Стандартной командой остановки демона на Solaris'е является:
/etc/init.d/sendmail stop
| Если “/usr/lib/sendmail ” является символической ссылкой, скрипт не сможет остановить Exim, потому, что он использует команду “ps -e ” и “grep ” для вывода текста «sendmail», а ее не будет, потому что настоящее имя программы («exim») дается команде ps с этими опциями. Решение состоит в том, что бы заменить эту строку на идентификатор системного процесса, например:
pid=`cat /var/spool/exim/exim-daemon.pid`
| который получим из файла в который Exim сохраняет его.
Стоит отметить, что остановка демона, не означает остановки Exim. Сообщения все еще могут получаться от локальных процессов и если автоматическая доставка сконфигурирована (вероятный случай), то доставка будет происходить.
translated by Andy
verifying by lissyara
Ссылка на обсуждение: http://forum.lissyara.su/viewforum.php?f=20.
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless
Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение
Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга
Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff
Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа
Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL
Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)
Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP
Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools
Network UPS Tools представляет собой набор программ, которые обеспечивают общий
интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP
Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network
Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem
В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID
Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN
Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS
В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL
Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)
Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external
mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
2009-03-24, gx_ua
Lightsquid
Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
2009-03-18, LHC
Установка Zabbix-1.6
Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
2009-03-16, Cancer
Принт-Сервер Samba+LPD & AD
Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
2009-03-04, Mad_caterpillar
ipsec_vpnc
Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
|