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 适合
自身研发或定制研发的前端,对二进制级别依赖较低,需要更新的功能支持,快速迭代式部署
对应用的最新功能没有特别要求,希望快速部署,自动更新

CentOS, FreeBSD, Ubuntu LTS 维护风格的简单比较的更多相关文章

  1. 【转帖】Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo

     Linux发行版:CentOS.Ubuntu.RedHat.Android.Tizen.MeeGo作者:阳光岛主 原文在这儿 Linux,最早由Linus Benedict Torvalds在199 ...

  2. 【系统】CentOS、Ubuntu、Debian三个linux比较异同

    CentOS.Ubuntu.Debian三个linux比较异同 2014-07-31 12:58             53428人阅读             评论(6)             ...

  3. CentOS、Ubuntu、Debian三个linux比较异同

    Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本. 商业版本以Redhat为代表,开源社区版本则以debian为代表.这些版本各有不同的特点, ...

  4. CentOS、Ubuntu、Debian三个linux比较异同[转]

    Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本. 商业版本以Redhat为代表,开源社区版本则以debian为代表.这些版本各有不同的特点, ...

  5. linux中CentOS、Ubuntu、Debian三个版本系统 差别

    Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本. 商业版本以Redhat为代表,开源社区版本则以debian为代表.这些版本各有不同的特点, ...

  6. CentOS、Ubuntu、Debian简析

    Centos .Ubuntu.Debian 三个Linux都是非常优秀的系统,开源的系统,也分付费的商业版和免费版,下面简单比较这三种系统. Centos系统 非常多的商业公司部署在生产环境上的服务器 ...

  7. 查看系统信息,区分Centos和Ubuntu

    查看系统信息,区分Centos和Ubuntu # cat /etc/issue \S Kernel \r on an \m centos $ cat /etc/issue Ubuntu 16.04.4 ...

  8. CentOS和Ubuntu的区别

    CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代 ...

  9. Ubuntu LTS 系统学习使用体会和实用工具软件汇总 6.04 8.04 10.04 12.04 14.04 16.04

    Ubuntu LTS 系统学习体会和工具软件汇总 6.04 8.04 10.04 12.04 14.04 16.04 ubuntu入门必备pdf:http://download.csdn.net/de ...

随机推荐

  1. Mybatis执行BatchExecutor(四)

    BatchExecutor:顾名思义就是进行批量操作,通过批量操作来提高性能 public class BatchExecutor extends BaseExecutor { public stat ...

  2. 平述factory reset ——从main system到重引导流程

    关于Android或linux的引导流程,网上大都是从开机开始讲述的,或者直接跳过bootloader引导阶段,直接从init进程开始说起.这里我从手机正常运行状态开始,到重启状态以及重启之后的状态略 ...

  3. (六十五)iOS的socket实现(GCDAsyncSocket)

    本文介绍使用GCDAsyncSocket来实现iOS端的socket,有关简易服务端的代码已经在上一篇文章中提到,这里不再赘述,将直接介绍如何实现客户端. 首先下载CocoaAsyncSocket框架 ...

  4. Java数组的应用2:数组的最大,最小,求和,平均值,倒置

    import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ // Scann ...

  5. 使用批处理文件(*.bat)同时打多个cmd窗口

    使用批处理文件(*.bat)同时打多个cmd窗口 最近在研究zookeeper,在本地建了几个目录,发现频繁的去各个目录启动zkServer.cmd十分繁琐,于是乎google,才有了下文: 使用批处 ...

  6. 7、Libgdx网络操作

    (官网:www.libgdx.cn) Libgdx包含了一些跨平台的网络操作类,这些类在Gdx.net中. 特性 跨平台HTTP请求 多平台TCP C/S Socket支持(可配置) TCP C/S优 ...

  7. ORACLE里锁有以下几种模式,v$locked_object,locked_mode

    ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁,sub share  3:Row-X 行独占(RX):用于行的修改,sub exclusiv ...

  8. java缓存系统

    第一版 package cache; import java.util.HashMap; import java.util.Map; public class Cache1 { private Map ...

  9. Invalid Subledger (XLA) Packages In Release 12.1.3

    In this Document   Goal   Solution   1.- Information about These Packages   2.- Solution   Reference ...

  10. Swift之GCD使用指南1

    Grand Central Dispatch(GCD)是异步执行任务的技术之一.一般将应用程序中记述的线程管理用的代码在系统级中实现.开发者只需要定义想执行的任务并追加到适当的Dispatch Que ...