与其它大部分桌面及服务器操作系统不同,Linux拥有多种多样的版本及种类供广大用户任意选择,而且它们全部基于同一套通用型Linux内核以及一系列GNU用户空间工具。如果大家正在运行Linux服务器或者Linux桌面系统,那么最重要的一点就是确保自己真正理解不同Linux发行版之间的差异所在,并根据这类区别为实际使用状况选择最合适的针对性方案。如果各位对此还感到有些信心不足,别怕——今天的文章就将帮助大家解破迷津。
由于Linux属于开源软件,因此Linux发行版的具体数量也实在相当庞大、甚至难以准确统计。不过从另一方面看,真正能够在市场上获得可观份额比例的发行版并不太多,目前商用Linux部署领域的几大竞争者分别为:红帽企业Linux(简称RHEL)、CentOS、Fedora、Ubuntu、Debian以及OpenSuse。
风格与实质
其实不同发行版之间的大部分差异都只能算是细枝末节。它们所高度关注的定制对象其实主要来自小处,而非核心功能。文件系统布局、配置设定、更新机制以及绑定配置工具可能千差万别,但它们的相似之处要远远多于区别所在。
即便如此,不同发行版之间仍然存在着明确的划分,而其中最主要的部分在于系统设计层面。当面对生产环境下的Linux管理工作时,大家会发现各类发行版在稳定性以及对不同主流开源软件包的支持能力等领域存在显著差异。如果不能准确把握这些源于细微的分别,我们在部署并运行自己的应用程序时可能会将原本一帆风顺的流程搞得波澜翻腾、暗流涌动。
首先以Web服务器为例进行分析。所有Linux发行版都绑定有Apache Web服务器,但不同版本在实施Apache所使用的文件系统布局及配置机制方面存在着些许不同。
举例来说,Ubuntu将Apache版本2称为“apache2”,而CentOS与RHEL则将其称为“httpd”。这将直接影响到Apache配置文件在不同发行版当中的实际保存位置。在CentOS与红帽Linux中,我们可以在…/etc/httpd目录下找到这些配置文件; 而在Ubuntu当中,其位置则在…/etc/apache2当中。除此之外,Ubuntu及其它一些发行版可能会将Apache文档放置在…/var/www当中,而CentOS与RHEL则将其保存于…/var/www/html之内。
再有,Ubuntu提供一套自主开发的Apache配置管理方案,允许管理人员将Apache配置片段分别放置在/etc/apache2/sites-available与/etc/apache2/sites-enabled当中,从而利用a2ensite以及a2dissite等定制化命令将这些片段在Apache中迁移与载入、借此实现管理目的。也就是说,大家能够通过命令行随意启用或者禁用虚拟网站。CentOS与RHEL并不提供这样的功能,因此我们需要以手动方式对配置文件进行管理。
Ubuntu提供的方案并不一定更好或者更差——其实际效果如何还是要视用户的具体需求而定。一方面,它确实能够更为轻松地完成网站设置等操作; 但在另一方面,大家也需要将自己的配置方案进行针对性调整、从而使其能够与自定义配置命令切实对接。经验老到的Apache管理员可能觉得直接手动调整更方便,但新手用户们则往往更认同Ubuntu提供的解决方案。总而言之,到底孰优孰劣还是要由广大用户自行判断。
其它一些差异同样不容忽视。在默认情况下,Ubuntu会锁定root用户,同时要求管理员在安装流程中创建一个本地用户; 此用户拥有使用sudo命令的权限、旨在执行与root用户相等同的各项任务。CentOS与RHEL则不提供此类限制,而且允许root用户对所有内容加以访问。
某些发行版还提供多种定制化配置工具。Suse Linux(以及OpenSuse)采用YaST(全称为Yet another Setup Tool),这款系统安装与配置管理工具在其它Linux发行版中并不存在。
守护程序中的玄机
另外值得注意的是,当前发行版当中可能采用相当广泛但却无法与陈旧版本共享的设计机制。举例来说,systemd在各大主流Linux发行版的最新版本中被用于取代sysvinit,并从根本上改变了服务器在运行这些发行版的启动、载入以及管理服务的具体方式(但这种解决思路也引发了一定争议)。这些发行版的原有版本并不提供systemd,因此无法享受到由此带来的执行效率及性能表现提升。如果大家正在选择理想的Linux系统版本,这一点确实值得认真考虑。
不同Linux发行版之间的另一大关键性区别元素在于软件包更新机制以及软件包的更新频率。在Ubuntu与Debian当中,大家可以使用Apt(即高级软件包工具)来处理与发行版相关的更新工作。这款工具允许用户对个别软件包或者系统整体进行更新。而在RHEL、CentOS、Fedora以及其它一些发行版中,Yum(全称为yellodog Updater, Modified)则扮演着软件包管理工具的角色。Apt与Yum采取较为相似的运作方式,允许管理员配置自定义软件库,并轻松实现软件包升级以及系统维护工作。
总体而言,大家可以通过以下概述了解各类主流Linux发行版的具体特色。
各大主流Linux发行版特性一览
RHEL与CentOS
采用稳定但略为陈旧的内核及基础软件包。这些版本的发布周期较长,而且“当前”软件包通常基于两年前的软件版本。二者属于部署范围最为广泛的Linux发行版,同时也是老牌Linux管理员们的最爱。
Fedora
稳定性略逊于前两者,但内核与软件包的更新频率更高。通常被作为RHEL与CentOS的测试性发行版。
Ubuntu
将稳定的旧有版本与新型维护机制相结合,从而提供稳定性略逊但却更具更新时效性的解决方案。其LTS版本适用于那些对稳定性及长期支持服务较为重视的管理员,在使用层面上也更适合新手用户。
Debian
Ubuntu以Debian为基础,因此大家能够在二者之间找到颇多相似之处。Debian同时提供三种版本供大家选择:“稳定版”、“测试版”以及“非稳定版”。生产型工作负载显然应该使用“稳定版”,而其发布周期也相应更为漫长。
OpenSuse
尽管属于红帽发行版的远亲,但OpenSuse与其它各类Linux版本都存在显著差别。它依赖于YaST配置工具,而且提供引入Novell及微软解决方案的可用版本。
在多种方案中做出正确选择
在选择Linux发行版的过程当中,通常需要认真考虑以下几种关键性因素:
熟悉性。坚持使用自己所熟悉的Linux发行版,由此带来的优势往往远大于使用其它较为陌生的发行版本。如果对CentOS与RHEL较为了解,那么从长期运行角度看这些版本要比其它发行版更具便捷性优势。除非服务器对此有强制要求,否则大家最好使用自己熟知的发行版选项。
便捷性。就应用程序堆栈的同质性来说,值得考量的因素也很多。保证整套堆栈当中使用同样的发行版本几乎成为工作当中的主要环节。如果大家的应用程序服务器运行的是CentOS,那么我们的数据库服务器也同样应该使用CentOS——除非存在不可妥协的理由,否则请务必保证不同服务器设备选择同样的Linux操作系统。
服务器要求。最后,大家所选择的Linux发行版也受到所需要部署的应用程序及服务项目的影响。举例来说,如果服务器必须运行MySQL或者PHP等常见软件包的最新版本,那么大家最好选择CentOS或者RHEL的稳定版本——这些版本拥有周期较长的支持规划,能够确切符合合规性方面的要求。除此之外,大家可能还需要使用大量由第三方开发商提供的其它软件库以及由众多贡献者打造的使用包,这些方案由于并非来自系统官方、因此有可能带来支持性问题。在某些情况下,大家可能还需要创建自己的软件包RPM或者定制化软件包,并保证它们能够与最新软件包版本顺利对接与协作。
除此之外,还有研究表明Fedora已经能够提供大家所需要的MySQL或者PHP版本,因此使用Fedora能够帮助各位有效节约时间及精力。在另一些情况下,Ubuntu或者Debian可能更符合各位服务器对于软件运行的要求,因此即使对这两类发行版不太熟悉、大家也应该认真考虑加以使用。
大家还可以根据自己预先规划好的应用程序或者服务堆栈作为基础,考虑哪些发行版最适合其实际需要。再有,大家还可以从其它一些Linux发行版当中找到部分相关解决方案。大家最好能坚持使用这些版本以确保整套系统拥有出色的兼容性表现。
稳定性。最后,从保守角度看强调稳定性也是很重要的一点。在默认情况下,稳定的操作系统版本应该成为大家的首选方案。如果当前的稳定版本无法满足对于服务器对软件的要求,那么使用更新版本要比采用配备新型软件包的原有稳定性陈旧版本更具实际意义。
最好不要让生产型服务器运行来自各家供应商的非稳定或者测试操作系统版本。某些管理员可能会对这条指导意见拥有自己的理解,认为这意味着我们不应该在生产服务器之上运行非LTS版本的Fedora以及Ubuntu系统。虽然这确实可算是一条值得借鉴的通行规则,但例外情况总是存在的。充分了解所涉及的风险以及可能出现的实际问题,我们通常就能够充分发挥出非稳定或者测试版本的潜在优势。
在很多情况下,Linux发行版的选择也并不完全取决于大家的个人考量。如果大家需要使用一套VPS(即虚拟私有服务器)或者云服务器实例,甚至是在托管设施中部署专有服务器,大家往往会拥有一系列由供应商提供的受支持发行版组合。对于各家主流Linux操作系统供应商而言,这些受支持的发行版通常来自RHEL、CentOS、Fedora、Ubuntu、Debian以及OpenSuse的部分子集。
一部分供应商只提供面向CentOS以及Ubuntu的版本,也有一些专门打造以Fedora与Debian为基础的发行版。少数供应商提供的版本以OpenSuse为基础,其发行版数量也基本维持在四到五个之间。除了前面提到指导性意见,大家也可以结合下面这份表格了解哪种Linux发行版最适合自己的实际项目。
当然,大家也可以多多体验不同Linux发行版、并结合感受选出最合适的选项,这应该能保证各位发现最能满足个人需求的项目。
Copyright© 2012-2013 TATAIT.COM All Rights Reserved 深圳塔塔咨询服务有限公司 版权所有 深圳网站建设:沙漠风
塔塔IT—高端IT培训领导品牌,专注于IT前沿技术的传播与应用。专业创造价值,服务赢得口碑!