https://jackqq.wordpress.com/2014/06/24/centos-vs-freebsd-vs-ubuntu-lts/
看到周围的人好多在用或者学 CentOS,忍不住也想看看如何。在知乎和国外看了一通关于 CentOS 和 Ubuntu Server 的唇枪舌战。更加忍不住,这两天装了个 CentOS 的虚拟机简单体验了一下。结合之前用过的 FreeBSD 还有 Ubuntu 谈谈感受。可能还有不尽之处,以后再补充,也欢迎评论。
在发布和维护上的特色:
CentOS 提供操作系统核心和大批基础软件和服务(如 perl、 apache httpd 等),并由官方维护。
主版本维护期超长, 10 年,所以它上面的软件版本只求稳定不求新。
在一个主发行版本期间,其软件包不进行升级,只进行安全修补,不做功能更新。
镜像服务器包含了软件包的全部历史版本,所以我感觉这些软件包的更新、回滚均可由管理员随意进行。
还提供了方便的 yum history rollback 机制,在部署的系统上做更新可以说高枕无忧。
但是官方不提供应用软件。由应用软件提供安装方法,因为系统的稳定性,这一点还好实现。
系统更新有邮件列表通知,或者配置 yum-cron 每天提醒。不过应用软件自身的更新就要管理员自己注意了。
FreeBSD 基本上只提供操作系统核心功能的更新和回滚,由官方团队维护。多数软件(包括perl、 apache 等)通过 ports 提供,由志愿者负责跟踪、移植上游的更新。
主版本维护期不定,大约在 5 – 6 年。
但系统的核心功能大多数应用软件不够用,还要依赖第三方的基础服务。
多数软件,及其基础服务通过 ports 或者 pkg 安装,只提供软件包的最新版本。 ports 里同时维护着该软件的多个分支版本,可以任意选择。系统发行版本和应用软件版本不是绑定的,这一点比另外两个系统更灵活。但软件之间的兼容性问题可能也更容易出现。
但不一定是最先进的分支,跟 Ubuntu LTS 的问题一样。
在本地 /var/cache/pkg 中可以有一个曾经下载的缓存,可用作紧急回滚。
系统和应用软件的安全更新事件可以有每日邮件通知。
Ubuntu LTS 提供完整的应用软件栈,并由官方维护。
维护期为 3 – 5 年。
应用软件都是从官方软件库安装的,兼容性应该不会有问题。
但基本所有软件只做修补,不更新版本。所以用不了最新版本的应用。和 CentOS 一样。
软件包的回滚机制不够方便,需要大量手工操作。 http://askubuntu.com/a/34908
所有软件的安全更新可全部由系统自动安装。管理员只需重启机器。
另外,值得注意的是,任何一个系统,无论如何安全更新,都无法保护一个有安全漏洞的应用。所以,我认为
CentOS 的维护模式更像 Windows,适合
自身研发或定制研发的软件,长时间的稳定部署
需要用应用的最新版本,又希望操作系统和硬件长期稳定不变
FreeBSD 适合
要用其自身的特色功能,如 ZFS
对第三方应用需求比较简单——单一应用栈,没有交叉依赖
Ubuntu 适合
自身研发或定制研发的前端,对二进制级别依赖较低,需要更新的功能支持,快速迭代式部署
对应用的最新功能没有特别要求,希望快速部署,自动更新