Компиляция и оптимизация.
Перейдите в новый IMAP/POP каталог и введите следующие команды на вашем терминале:
Шаг 1
Редактируйте файл Makefile (vi +719 src/osdep/unix/Makefile) и измените следующую строку:
sh -c '(test -f /usr/include/sys/statvfs.h -a $(OS) != sc5 -a $(OS) != sco) && $(LN) flocksun.c flockbsd.c $(LN) flocksv4.c flockbsd.c'
Должна быть:
sh -c '(test -f /usr/include/sys/statvfs.h -a $(OS) != sc5 -a $(OS) != sco -a $(OS) != lnx) && $(LN) flocksun.c flockbsd.c $(LN) flocksv4.c flockbsd.c'
Эта модификация изменит файл “sys/stavfs”. Этот файл, с новой glibc 2.1 из Linux отличается от доступной на Sun.
Редактируйте файл Makefile (vi +354 src/osdep/unix/Makefile) и измените следующую строку:
BASECFLAGS="-g -fno-omit-frame-pointer -O6 -DNFSKLUDGE" \
Должна быть:
BASECFLAGS="-g -fno-omit-frame-pointer -O9 -funroll-loops -ffast-math -malign-double -mcpu= pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions -DNFSKLUDGE" \
Это наши оптимизационные флаги для компиляции программ IMAP/POP на сервере.
Редактируйте файл Makefile (vi +61 src/osdep/unix/Makefile) и измените следующие строки:
ACTIVEFILE=/usr/lib/news/active
Должна быть:
ACTIVEFILE=/var/lib/news/active
SPOOLDIR=/usr/spool
Должна быть:
SPOOLDIR=/var/spool
RSHPATH=/usr/ucb/rsh
Должна быть:
RSHPATH=/usr/bin/rsh
LOCKPGM=/etc/mlock
Должна быть:
#LOCKPGM=/etc/mlock
“ACTIVEFILE=”строка определяет путь “активного” каталога для IMAP/POP, “SPOOLDIR=”где вы разместите “spool” каталог Linux IMAP/POP, “RSHPATH=”определяет путь каталога “rsh” на вашей системе. Важно заметить, что мы не используем сервис rsh на нашем сервере, но даже в этом случае, мы должны определить правильный путь до “rsh”.
Редактируйте файл Makefile (vi +89 src/osdep/unix/Makefile) и измените строку:
CC=cc
Должна быть:
CC=egcs
Эта строка определяет имя нашего GCC компилятора, который мы будем использовать при компиляции программ IMAP/POP (в нашем случае egcs).
Шаг 2
Сейчас мы должны компилировать и инсталлировать IMAP & POP на почтовом сервере:
[root@deep imap-4.7c]# make lnp
[root@deep imap-4.7c]# install -m 644 ./src/ipopd/ipopd.8c /usr/man/man8/ipopd.8c
[root@deep imap-4.7c]# install -m 644 ./src/imapd/imapd.8c /usr/man/man8/imapd.8c
[root@deep imap-4.7c]# install -s -m 755 ./ipopd/ipop2d /usr/sbin
[root@deep imap-4.7c]# install -s -m 755 ./ipopd/ipop3d /usr/sbin
[root@deep imap-4.7c]# install -s -m 755 ./imapd/imapd /usr/sbin
[root@deep imap-4.7c]# install -m 644 ./c-client/c-client.a /usr/lib
[root@deep imap-4.7c]# ln -fs /usr/lib/c-client.a /usr/lib/libimap.a
[root@deep imap-4.7c]# mkdir -p /usr/include/imap
[root@deep imap-4.7c]# install -m 644 ./c-client/*.h /usr/include/imap
[root@deep imap-4.7c]# install -m 644 ./src/osdep/tops-20/shortsym.h /usr/include/imap
[root@deep imap-4.7c]# chown root.mail /usr/sbin/ipop2d
[root@deep imap-4.7c]# chown root.mail /usr/sbin/ipop3d
[root@deep imap-4.7c]# chown root.mail /usr/sbin/imapd
Вышеприведенные команды будут конфигурировать программу, проверяя, что ваша система имеет необходимые библиотеки и способна выполнять необходимые функции, компилирует все исходные файлы в исполняемые двоичные, и затем, инсталлирует все двоичные и вспомогательные файлы в определенное место.
Заметим, что команда “make lnp” будет настраивать программу под вашу Linux систему с поддержкой Pluggable Authentication Modules (PAM) для лучшей безопасности.
Команда “mkdir” создаст новый каталог с именем “imap” в “/usr/include”. Этот новый каталог “imap” будет содержать все заголовочные файлы связанные с программой imapd файлы “c-client/*” и “shortsym.h”.
Команда “chown” изменит владельца исполняемых программ “ipop2d”, “ipop3d” и “imapd” на пользователя “root” и группу “mail”.
Команда “ln -fs” создаст символическую ссылку “libimap.a” к файлу “c-client.a”, которая может потребоваться для некоторых других программ, которые мы будем инсталлировать в будущем.
ЗАМЕЧАНИЕ. Из соображений безопасности, если вы используете только imapd сервис, удалите двоичные файлы ipop2d и ipop3d. Тоже верно и для ipopd; если вы используете только ipopd сервис, удалите исполняемый файл imapd. Если же вы используете оба сервиса (imapd и ipopd), то оставьте оба двоичных файла.