这个问题我正在修复和测试中,今天一天都在处理这个问题,建议稍等一下,修复之后我会在这里回复。
我个人并不推荐在服务器上用 FreeBSD,原因很多,但这里列几个主要的观点,有些可能比较主观,仅供参考:
*) FreeBSD ports tree 的目标是让你自己编译,而不是生成可以给所有人都通用的二进制包(这里的通用是指编译参数满足所有人的要求)。这个影响了安装、升级软件的速度。
与之对比,OpenBSD 的 ports tree 的目标则是统一生成二进制包,一个软件包可能会有不同的 sub packages 用于支持不同的编译参数,例如支持 mysql, pgsql, ldap 等。以 postfix 软件为例,直接可用的二进制包就有好几个:
postfix-3.1.1p0-ldap.tgz
postfix-3.1.1p0-mysql.tgz
postfix-3.1.1p0-pgsql.tgz
postfix-3.1.1p0-sasl2-ldap.tgz
postfix-3.1.1p0-sasl2-mysql.tgz
postfix-3.1.1p0-sasl2-pgsql.tgz
postfix-3.1.1p0-sasl2.tgz
postfix-3.1.1p0.tgz
有洁癖的系统管理员不少,我只要 mysql 支持,不需要 pgsql 和 ldap,那我安装 postfix-xxx-mysql.tgz 就好了。
FreeBSD ports tree 不提供这样的 sub-packages,因此对于 iRedMail 来说,无法直接通过 pkg install 命令直接安装二进制包来满足要求。必须自己编译,加上相关参数。费时费力。从这点上说,FreeBSD ports tree 不如用 NetBSD 的 pkgsrc 来代替,因为有更多软件可用,支持更多平台,也可以/可能得到更多人的维护和 contribution。
*) FreeBSD ports tree 每天都在更新,很难避免在安装升级的时候碰到不稳定的软件包。这里的不稳定指的是因为 Makefile 等问题出现软件无法编译、或编译后无法满足要求等。这个之前碰到过。试想一下,在生产环境下你升级个软件包,结果发现升级后没法正常使用。你就哭吧。
*) 由于 ports tree 的以上两个情况,测试一次 iRedMail 就得至少 2 小时(主要是从 ports tree 安装软件费时间),因此测试得不如其它 linux 发行版和 openbsd 充分。简单算一下,iRedMail 要支持 4 个 backends(mysql, mariadb, pgsql, openldap),每个2小时,完整一次测试就得至少 8 小时。
*) ports tree 每天都更新,我们测试的时候可能是用10天前,甚至几个月前的 ports tree,而你是用最新的 ports tree 安装。这之间 ports tree 的变化我们是无法预料到的,因此极偶尔的情况会出现安装软件出错的问题。虽然用户有反馈这样的问题我们会立刻修复,但是测试需要时间,因此你得到修复后的版本可能是一天后了。这个之前也碰到过。
其他几个 linux 发行版或 openbsd,就看你自己的喜好了,对 iRedMail 来说它们没什么区别。但从目前的使用情况来看,最推荐的是 ubuntu 16.04 LTS。