CentOS 与 Debian 的不同

在 Linux 服务器的世界里,我们经常能看到 CentOS 与 Debian 的身影,没错,它们都是极为优秀的发行版。Armstrong 先前一直在两个发行版之间徘徊,现在我改变了想法,准许我的平台里有不同的发行版,正如多元化是发达国家引以为豪的象征,在 viyf 的架构中,那些对稳定性的要求不苛刻的应用,我选择 Debian,而重要的系统采用 CentOS。经过使用,我得出了一些自己的拙见,欢迎各位同学一起交流。
它们二位来自不同的社区,CentOS 来自 Red Hat Enterprise Linux,下面我简称为 RHEL,从名称可知,CentOS 与红帽公司有联系,而 Debian 来源于纯粹的社区,你甚至可以说,CentOS 就是 RHEL 的免费版。有趣的是,RHEL 本身就是开源且免费的,而支持服务要收费,这或许让很多习惯了使用微软 Windows 系统的同学感到诧异,开源了还咋赚钱呀?这就是红帽公司的奥妙。既然 RHEL 是开源且免费的,CentOS 社区就可以利用红帽公开的源代码来编译 CentOS 系统,事实上他们真就这么干了,其它单位或者组织,也或者那个臭名昭著的甲骨文公司,也像 CentOS 那样如法炮制自己的系统,为什么我会炮轰甲骨文公司呢?因为它比当年的微软公司对待开源社区残忍万倍。
咱们再来聊聊 Debian,这个操作系统是 1993 年开始开发的,它的开发者是伊恩·默多克,Debian 其实是一个项目,由于 Debian 在创建之初被定位为在 GNU 计划的精神指导下进行公开开发并自由发布的项目,因此,吸引了自由软件基金会从 1994 到 1995 年,为期一年的资金支持。项目逐渐发展,开发者人数越来越多,他们来自世界各地,因此,Debian 的具体工作在互联网上协调完成,由 Debian 计划领导人带领一个志愿者团队开展工作,开发者之间遵守社区契约、Debian 宪章和 Debian 自由软件指导方针。
操作系统是拿来使用而不是拿来纸上谈兵的,因此,这两款系统在日常使用时,有何相同或不同呢?冰冷的数据表让人看着似懂非懂,我使用下来发现,Debian 和 CentOS 都能很好地兼容主流的虚拟化系统,如 KVM、XEN 及 Hyper-V 等,至于处理器架构呢?我们大多数同学,在使用树莓派时,都采用 Raspbian,这是一款针对树莓派进行定制的 Debian,至于 CentOS 能不能运行?我没试过,欢迎尝试过的同学分享自己的经验。总之,处理器架构的兼容上,二者都没太大的问题,如果同学们打算在裸服务器上安装 Linux 系统,或许 CentOS 是较好的选择,因为服务器厂家多与红帽公司合作,与社区合作对于他们来说,大概太有挑战了。我们大多数的同学,几乎都是在虚拟化平台中使用 CentOS 或 Debian,两款操作系统对主流的虚拟化平台支持得都非常完美。
CentOS 与 Debian 相比,在日常操作有什么不一样吗?基本的 Linux 命令,二者都是一样的,安装软件时,CentOS 使用 yum 指令,而 Debian 使用 apt-get 指令,软件的包名有略微差别。在系统进行文本安装,并且仅安装命令行界面,Debian 9 需要 40 多 MB 的内存,而 CentOS 7 需要 70 MB 左右的内存,这取决于安装的硬件平台,我是在 VPS 上安装时得到的结果。
很多同学都关心稳定性的问题,没错,CentOS 来自 RHEL,而 RHEL 被部署到了世界各地各行各业的服务器上,并且稳定地支撑着那些机器。Debian 就很不稳定吗?Debian 的稳定性确实不及 CentOS,但非常有趣的事情是,基于 Debian 构建的 Ubuntu 在亚马逊的 AWS 中确实是最受欢迎的操作系统,为什么呢?很明显,只要稳定性不是大问题,那么,用户们就会选择更容易使用的发行版,CentOS 被我的同学称为“牲口”操作系统,它有使不完的劲儿,但是如果你调教不好,它就变成脱缰之马,“牲口”是很难调教的,为什么很难调教?同学们不要着急。
与 CentOS 相比,Debian 相对容易上手一些,如果你正在构建一台现代化的 Web 服务器,Debian 很容易达成你的目标,构建 WordPress 时,我们会安装 Nginx、PHP 和 MariaDB,只需要使用 apt-get 指令,这些服务端软件就能安装到位,在 CentOS,需要你添加 epel 源,才能安装。另外,Debian 9 的软件源中的 php 是 7.0 版,CentOS 7 的软件源中的 php 是 5.4 版。有许多同学因为中国大陆备案制度,以及亚洲服务器较贵之类的原因,希望把服务器架设在美国,这样就会涉及到网络传输速度的问题,除了使用害人利己的锐速进行加速,我们还可以选择使用 BBR 这种更为礼貌的加速方式。使用 BBR 的先决条件是 Linux 内核版本大于 4.9,CentOS 自带的内核版本是 3.10.0,而 Debian 9 的内核版本是 4.9.0,要让 CentOS 支持 BBR,必须更换内核。
服务器的安全运行对于任何人都很重要,服务器被黑客入侵后,变成恶意软件的载体,影响范围将会非常大,CentOS 与 Debian 都提供了更新选项,而 Debian 还有专门的安全网页。在默认情况下,CentOS 7 运行了 firewalld 防火墙,只允许 22 端口入栈连接,Debian 运行了不带规则的 iptables,等同于没有防火墙。在 CentOS 中,配置防火墙是通过 firewall-cmd 或直接修改配置文件达成的,而在 Debian 中,同学们可以自己修改 iptables 规则,或者使用 ufw 或 firewalld 等防火墙,ufw 相对 firewalld 简单一些。
同学们使用不受支持的操作系统同样会有风险,操作系统的生命周期越长,就越少需要更换。CentOS 5 及以上版本的生命周期是 10 年,Debian 长期支持版本的生命周期是 5 年,通常情况是,Debian 的新版本发布后,上一个版本的支持就会减少,使用 Debian 需要保持最新。在非关键的 Web 服务器上,使用 Debian 可以加快 Web 应用程序的部署,而通常的 Web 应用程序迭代的速度是相当惊人的,5 年的支持周期内,Web 应用程序或许已经更新了很多次,运行在几年前的操作系统上,功能可能会受到限制。
细心地同学一定会知道,为什么我说 CentOS 容易变成脱缰之马,为了照顾那些不是很明白的同学,我来稍微总结一下。首先,CentOS 是以稳定著称的,因此,它的内核自始至终都不会进行大规模的更新,要想使用诸如 BBR 等由新版本内核提供的功能,同学们就必须更新内核,这又背离了稳定的初衷,社区发布的,能用在 CentOS 的内核版本终究没有红帽公司测试得充分,难免存在一些稳定性问题。而 CentOS 提供的支持库版本也是经过了充分测试,确保稳定的老版本,有些 Web 应用程序要求该库文件的新版本,这样,就必须从库文件的官方网站下载新版本来让应用程序运行,更换了内核以及支持库的 CentOS,跟原始的 CentOS 已经有很大的变化,大规模修改过的 CentOS,稳定性还能与原版的 CentOS 相比吗?既然都是要换新版软件,普通的,只有一点 Linux 操作基础的同学,操作这些将会非常耗时而且辛苦,成功让服务运行,稳定性跟 Debian 相比还有多少差别呢?因此,我建议同学们把 Debian 用在 VPS,充当 Web 服务器,把 CentOS 用在物理服务器。

加入对话

4条评论

  1. openSUSE 一直用的低版内核。有人问:旧版内核存在漏洞,无法使用最新硬件,像 AMD Zen2 。其实 openSUSE 是把最新补丁都打到低版内核了,因此 Linux 4.5 也能支持 Zen2 icelake 处理器。 CentOS 差不多,内核很旧,但安全更新一直提供。因为 GPL v2 ,所以它们必须公开自己改的 Linux 。 ArchLinux 是这个情况:上游 upstream 还在研制新版, Arch 团队率先发布安全更新更新(假设不是安全问题,通常会等 upstream 研制完成),用 sudo pacman -Syu 能获得 Arch 的补丁。假设 upstream 拒绝补丁,那么下次 Arch 丢弃自己的补丁; upstream 采纳补丁,发布了新版,因为 sudo pacman -Syu 会拿到 upstream 的补丁,所以 Arch 还是丢弃自己的补丁。相比之下, openSUSE CentOS Debian 长期保存自己的补丁,甭管 upstream 是否发布了新版。

  2. Raspberry Pi 似乎是可以运行CentOS的(我查到的教程安装的是CentOS 7),当然意料之内的很多软件由于不支持都无法安装。

    1. 看来也只有运行 Raspbian?我有一点不明白,手动从源代码编译,还有这种问题吗?

留下评论

电子邮件地址不会被公开。 必填项已用*标注