由于这些原因, 我建议使用源代码的tarball方式安装, 而不是Red Hat RPM或者其他自安装包方式. 2.2. 准备工作 安装qmail之前, 尤其如果是你第一次安装qmail, 有几个需要注意的地方. - 如果可能, 尽量在一个"试验"系统上安装qmail. 这样的话可以有机会犯错, 不至于在正在工作的服务器上安装时丢失重要的邮件或者中断mail服务.
- 如果你没有空闲的计算机系统, 而你要安装的系统上面已经运行sendamil, smail或者其他的MTA, 这些MTA还在进行邮件投递, 你可以在这种系统上完成大部分的qmail 安装而不中断现有的邮件服务.
- 如果从其他MTA移植到qmail--即使你在qmail上已经很有经验--首先制订一个安装计划, 也是非常必要的.
2.3. 系统要求 qmail 必须安装在UNIX或者类UNIX系统上, 一些系统要求: - 安装需要大约10兆空间. 安装之后可以删除目标文件释放出大约4兆空间.
- 一个完整的C开发环境, 包括编译器, 系统头文件, 以及函数库. 构建指导将告诉你如何显示你是否拥有这些必要的部分.
- 二进制代码, 文档, 和配置文件需要几兆空间.
- 邮件队列需要一个安全的文件系统. qmail 的可靠性要求文件系统兼容传统的BSD FFS语义. 大多数现代的本地文件系统都符合这个要求除了一个很重要的例外: link()系统调用常常是异步的--这意味着link()操作返回时不会将数据写入磁盘. Bruce Guenter 的syncdir 库可以用来解决这个问题. 更多信息请参见附录里面相关软件包 syncdir.
- 邮件队列需要的足够的磁盘空间. 小型单用户系统仅仅需要2兆. 大型系统可能需要2吉(2G).
- 兼容的操作系统. 多数变种UNIX都可以. 参考qmail源代码里面的README文件, 里面有已知的兼容系统版本列表.
- 最好有权使用域名服务器. 没有这个条件, qmail就只能按照smtproutes配置文件里面配置的远程主机发送邮件.
- 足够的网络带宽. qmail是为良好接入网络的系统设计的, 所以你不可能在一个28.8k的拨号线路上运行一个邮件列表. serialmail软件包是为在低速连接上的系统运行qmail而设计的. 更多信息请参见附录内serialmail相关的节.
注意: 邮件队列所在的文件系统必须允许使用可执行文件和设置setuid()文件. 一些操作系统自动挂载(mount) /var 目录选项为非suid 和非可执行.这种情况下, 必须在 /var/qmail/bin 内禁止这些选项, 或者, 将这个文件夹放置在其他没有这两项限制的文件系统上. 稍后我将在建立目录小节提到如何使用符号链接来解决这个问题. 如果/var 挂载为非suid, 你可能在qmail-send 日志内看到如下的错误消息:
delivery : deferral: Sorry,_message_has_wrong_owner._(#4.3.5)
注意: 本文或者INSTALL 文件的说明, 是不能作为qmail 在苹果X 操作系统上的安装指导的, Eben Pratt 存档了如何在苹果X 系统上安装qmail 的文档, 参考这里 http://netdevice.com/qmail/#osx.
2.4. 下载源代码 好了, 你已经准备好安装qmail的系统了. 第一步就是下载qmail和插件的源代码. 当然了, 你需要qmail, 还有ucspi-tcp和daemontools. - qmail, http://www.qmail.org/netqmail-1.05.tar.gz
- ucspi-tcp, http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
- daemontools, http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
用你的web浏览器, 或者web客户端(比如wget), FTP客户端下载这些源代码. 注意: 如果这些链接的其中任何一个失效, 都有可能由于他们已经升级了, 如果是这种情况, 你需要到http://cr.yp.to/software.html 查找相应软件包的链接下载最新版本. 有可能升级版本不兼容下面的指导内容, 所以请一定阅读这些发行版本的"Upgrading from previous version..."小节中的注意事项.
注意: 本文安装指导使用netqmail 发行版, netqmail 包含了qmail 1.03 tarball版和一个补丁, 这个补丁修正了一些漏洞, 不足和兼容性问题. 在这里访问netqmail http://www.qmail.org/netqmail/ netqmail 的CHANGES 文件内有更多的相关信息.
2.5. 编译源代码 2.5.1. 检验编译(源代码)环境 首先你要确定的是你有编译程序的必要的工具. 如何确定取决于你使用的UNIX变种. 虽然不能保证可靠, 但最简单的断定方式就是去试. 注意: 下面任何一个测试通过了, 你都可以停下来直接跳到下一节.
$ cc cc: No input files specified $ |