在Ubuntu 14.04上通过LDAP和MySQL查找支持从源代码编译并安装Exim
时间:2020-03-21 11:42:52 来源:igfitidea点击:
我们会将现有的Exim 4.72安装从Debian Squeeze移至Ubuntu 14.04(Ubuntu 14.04随Exim 4.82一起提供)。
从Exim 4.77开始,默认情况下match_ *不再在右侧扩展。
但是,Exim提供了一个新的编译时构建选项EXPAND_LISTMATCH_RHS。
EXPAND_LISTMATCH_RHS是我们要从源代码进行编译的原因之一。
请注意,本文不介绍Exim服务配置。
如果需要配置Exim,可以通过修改/etc/exim4/exim4.conf
文件来完成。
预先设定
从存储库安装Exim。
这将创建一个Debian-exim用户和组。
$sudo apt-get install --no-install-recommends exim4-daemon-heavy
同时复制以下文件。
我们稍后将需要它们:
$cp /etc/init.d/exim4 ~/exim4.init $cp /etc/default/exim4 ~/exim4.default
清除进出口:
$sudo dpkg -P exim4-base exim4-daemon-heavy exim4-config
来源检验
安装dpkg-dev,checkinstall和pkg-config:
$sudo apt-get install dpkg-dev checkinstall pkg-config
获取Exim的源代码:
$mkdir ./exim-src && cd ./exim-src $apt-get source exim4
安装构建依赖项:
$sudo apt-get build-dep exim4
配置Exim构建选项
根据需要配置构建选项:
$cd ./exim4* $cp ./src/EDITME ./Local/Makefile $vim ./Local/Makefile
下面提供了示例配置:
$grep -ve "^#" -ve "^$" ./Local/Makefile BIN_DIRECTORY=/usr/sbin CONFIGURE_FILE=/etc/exim4/exim4.conf EXIM_USER=Debian-exim EXIM_GROUP=Debian-exim SPOOL_DIRECTORY=/var/spool/exim ROUTER_ACCEPT=yes ROUTER_DNSLOOKUP=yes ROUTER_IPLITERAL=yes ROUTER_MANUALROUTE=yes ROUTER_QUERYPROGRAM=yes ROUTER_REDIRECT=yes ROUTER_IPLOOKUP=yes TRANSPORT_APPENDFILE=yes TRANSPORT_AUTOREPLY=yes TRANSPORT_PIPE=yes TRANSPORT_SMTP=yes TRANSPORT_LMTP=yes SUPPORT_MAILDIR=yes SUPPORT_MAILSTORE=yes SUPPORT_MBX=yes LOOKUP_DBM=yes LOOKUP_LSEARCH=yes LOOKUP_DNSDB=yes LOOKUP_CDB=yes LOOKUP_DSEARCH=yes LOOKUP_LDAP=yes LOOKUP_MYSQL=yes LOOKUP_NIS=yes LOOKUP_NISPLUS=yes LOOKUP_PASSWD=yes LOOKUP_SQLITE=yes LOOKUP_SQLITE_PC=sqlite3 LOOKUP_WILDLSEARCH=yes LOOKUP_NWILDLSEARCH=yes LDAP_LIB_TYPE=OPENLDAP2 PCRE_CONFIG=yes LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/include/mysql LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq -lsqlite3 -lm -ldl -lpam WITH_CONTENT_SCAN=yes WITH_OLD_DEMIME=yes FIXED_NEVER_USERS=root AUTH_CRAM_MD5=yes AUTH_DOVECOT=yes AUTH_PLAINTEXT=yes AUTH_SPA=yes HEADERS_CHARSET="ISO-8859-1" HAVE_ICONV=yes DEFAULT_CRYPT=crypt16 SUPPORT_TLS=yes USE_GNUTLS=yes USE_GNUTLS_PC=gnutls DLOPEN_LOCAL_SCAN=yes LDFLAGS += -rdynamic CFLAGS += -fvisibility=hidden LOG_FILE_PATH=/var/log/exim4/%slog SYSLOG_LOG_PID=yes EXICYCLOG_MAX=10 COMPRESS_COMMAND=/usr/bin/gzip COMPRESS_SUFFIX=gz ZCAT_COMMAND=/usr/bin/zcat EXPAND_DLFUNC=yes SUPPORT_PAM=yes NO_SYMLINK=yes SYSTEM_ALIASES_FILE=/etc/aliases HAVE_IPV6=yes TMPDIR="/tmp" MAKE_SHELL=/bin/sh SUPPORT_MOVE_FROZEN_MESSAGES=yes EXPAND_LISTMATCH_RHS=yes
(可选)如果需要Exim监视器,也可以对其进行配置:
$cp ./exim_monitor/EDITME ./Local/eximon.conf $vim ./Local/eximon.conf
设置进出口目录
我们将需要以下目录:
$sudo mkdir -m 0755 /etc/exim4
$sudo mkdir -m 0750 /var/log/exim4 $sudo chown Debian-exim:Debian-exim /var/log/exim4
$sudo mkdir -m 0750 /var/spool/exim $sudo chown Debian-exim:Debian-exim /var/spool/exim
编译源代码并安装Exim
编译源代码:
$make
构建一个.deb包:
$sudo checkinstall -D --install=no --pkgname exim4 --pkgrelease $(date +%F) \ --maintainer "[email protected]" --strip=no --stripso=no --addso=yes --nodoc
安装软件包:
$sudo dpkg -i ./exim4*deb
检查Exim版本和模块:
$exim -bV Exim version 4.82 #3 built 24-Feb-2014 18:10:38 Copyright (c) University of Cambridge, 1995 - 2013 (c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2013 Berkeley DB: Berkeley DB 5.3.28: (September 9, 2013) Support for: crypteq iconv() IPv6 PAM Expand_dlfunc GnuTLS move_frozen_messages Content_Scanning DKIM Old_Demime Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 nisplus passwd sqlite Authenticators: cram_md5 dovecot plaintext spa Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp Fixed never_users: 0 Size of off_t: 8 Configuration file is /etc/exim4/exim4.conf
创建符号链接
从Exim文档中:
构建和安装Exim本身并不能将其广泛使用。
邮件用户代理用来调用系统消息传输代理的名称是'/usr/lib/sendmail'或者'/usr/sbin/sendmail'(取决于操作系统),因此必须这样做名称指向exim二进制文件,以便他们使用它。
通常,通过重命名任何现有文件并将"/usr/lib/sendmail"或者"/usr/sbin/sendmail"作为指向exim二进制文件的符号链接来完成此操作。
您可能需要以下符号链接:
$sudo ln -s /usr/sbin/exim /usr/sbin/sendmail $sudo ln -s /usr/sbin/exim /usr/sbin/exim4
$sudo mkdir /usr/lib/exim4 $sudo ln -s /usr/sbin/exim /usr/lib/exim4/exim4
开始执行
现在,您可以通过发出以下命令来启动Exim:
$sudo /usr/sbin/exim4 -bd -q30m
复制以前保存的文件:
$sudo cp ~/exim4.init /etc/init.d/exim4 $sudo cp ~/exim4.default /etc/default/exim4
现在,您还可以通过以下方式启动Exim:
$sudo /etc/init.d/exim4 start