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. 设计模式之——工厂模式(C)

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41219129 主要介绍抽象工厂模式,以及工厂方法和抽象工厂 ...

  2. 关于对数组和指针的测试与分析OC

    前言: 这个笔试题想必很多小伙伴都很面熟把,差不多10个人有7个人不会做这道笔试题,或许有知道答案的,但是仅仅知道答案,心里还是一头雾水.如果你真的不会那就请认真看完本文学习一下吧! 错误想法: 有的 ...

  3. shell的字符串和数字的转化(数字自动做字符串处理,变量名做字符串输出用单引号)

    shell里面怎么样把字符串转换为数字? 例如:a="024" 1,用${{a}} 2,用let达到(()) 运算效果. let num=0123; echo $num; 83 3 ...

  4. 01_MUI之Boilerplate中:HTML5示例,动态组件,自定义字体示例,自定义字体示例,图标字体示例

     1安装HBuilder5.0.0,安装后的界面截图如下: 2 按照https://www.muicss.com/docs/v1/css-js/boilerplate-html中的说明,创建上图的 ...

  5. 算法学习笔记(一)C++排序函数、映射技巧与字典树

    1.头文件algorithm中有函数sort()用于排序,参数为:排序起始地址,排序结束地址,排序规则(返回bool型)例如,要将array[] = {5,7,1,2,9}升序排列,则使用: bool ...

  6. 使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 ...

  7. 任务管理器中的PID找不到

    PID是Process ID的简称,这对WINDOWS开发人员来说是非常有用的信息,但对于普通用户来说则根本不必去理会.   举个例子来说: 在网站发布的时候,需要安装IIS,那么iis的tcp的80 ...

  8. Android回调详解

         很多时候开发遇到一些Ui更新 网络数据获取,或者方法方法传递的时候会借助回调函数,那么什么是回调函数 百度百科是这么解释的  转载请标注出处 http://blog.csdn.net/sk7 ...

  9. CIO必看:跨国集团采购部报表系统的建设经验分享

    CIO必看:跨国集团采购部报表系统的建设经验分享 引言 福耀集团是国内最具规模.技术水平最高.出口量最大的汽车玻璃生产供应商,产品"FY"商标是中国汽车玻璃行业第一个"中 ...

  10. gtk+2.0中GtkObject结构中没有klass成员的解决办法

    gtk+2.0中一些较老的程序中会有如下的代码: #define EVENT_METHOD(obj, method) GTK_WIDGET_CLASS(GTK_OBJECT(obj)->klas ...