Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。
商业版本以Redhat为代表,开源社区版本则以debian为代表。这些版本各有不同的特点,在不同的应用领域发挥着不同的作用,不能一概而论。而绝大多数VPS上只提供开源社区维护的发行版本。下面就这些不同的Linux发行版进行简单的分析。
Ubuntu
Ubuntu近些年的粉丝越来越多,Ubuntu有着漂亮的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,Ubuntu还对大多数硬件有着良好的兼容性,包括最新的图形显卡等等。这一切让Ubuntu越来越向大众化方向发展。但别忘了:你所需要的只是一个简约、稳定、易用的服务器系统而已!
Ubuntu的图形界面固然漂亮,但这也决定了它最佳的应用领域是桌面操作系统而非服务器操作系统。如何你希望在学习Linux的过程中有个沉浸式的环境,那么Ubuntu的确不错:仅仅安装在自己的电脑中而非服务器中。从这一点来讲,Ubuntu并没有在VPS安装的操作系统选择之列,相信你也不会为了那数百M的驱动与宝贵的内存买单。
CentOS
你会发现非常多的商业公司部署在生产环境上的服务器都是使用的CentOS系统,CentOS是从RHEL源代码编译的社区重新发布版。CentOS简约,命令行下的人性化做得比较好,稳定,有着强大的英文文档与开发社区的支持。与Redhat有着相同的渊源。虽然不单独提供商业支持,但往往可以从Redhat中找到一丝线索。相对debian来说,CentOS略显体积大一点。是一个非常成熟的Linux发行版。
Debian
一般来说Debian作为适合于服务器的操作系统,它比Ubuntu要稳定得多。可以说稳定得无与伦比了。debian整个系统,只要应用层面不出现逻辑缺陷,基本上固若金汤,是个常年不需要重启的系统(当然,这是夸张了点,但并没有夸大其稳定性)。debian整个系统基础核心非常小,不仅稳定,而且占用硬盘空间小,占用内存小。128M的VPS即可以流畅运行Debian,而CentOS则会略显吃力。但是由于Debian的发展路线,使它的帮助文档相对于CentOS略少,技术资料也少一些。
由于其优秀的表现与稳定性,Debian非常受VPS用户的欢迎。
此外还有Arch Linxu、Gentoo、Slackware等一系列的Linux和FreeBSD、Unix等系统,由于其涉及领域更加专业,很少在VPS中出现,因此不作介绍。
对于初学者,我们建议采用CentOS或Debian,这两种系统都能在配置较低的VPS上流畅运行。但是如果VPS配置太低(OPENVZ内存在128M以下,或者XEN架构内存在192M以下),建议采用Debian;否则建议采用CentOS,以获取更多的在线帮助与支持,让自己入门更轻松。
CentOS、Ubuntu、Debian三个linux都是非常优秀的系统,开源的系统,也分付费的商业版和free免费版本,下面简单比较这三种系统。
CentOS系统
很多网站站长一般都选择centOS系统,CentOS是从redhat源代码编译重新发布版。CentOS去除很多与服务器功能无关的应用,系统简单但非常稳定,命令行操作可以方便管理系统和应用,并且有帮助文档和社区的支持。
Ubuntu系统
Ubuntu有亮丽的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,并且Ubuntu对计算机硬件的支持好于centos和debian,兼容性强,Ubuntu应用非常多,但对于服务器系统来说,个人感觉并不需要太多的各种应用程序,需要的是稳定,操作方便,维护简单的系统。如果你需要在服务器端使用图形界面,ubuntu是一个不错的选择,你需要注意的是,图形界面占用的内存非常大,而内存越大的vps价格也越高。
Debian系统
Debian也非常适合做服务器操作系统,与Ubuntu比较,它没有太多的花哨,稳定压倒一切,对于服务器系统来说是一条不变的真理,debian这个linux系统,底层非常稳定,内核和内存的占用都非常小,在小内存的VPS就可以流畅运行Debian,比如128m的内存,但debian的帮助文档和技术资料比较少。对于小内存,首选debian,对于非常熟悉linux系统的vps高手,首选debian。
在系统的选择上,属于新手,首选CentOS,并不是centos比Debian和ubuntu好,而是centos是初学者安装vps的首选,它既稳定,占用资源又少,在网络上能方便搜索到安装配置的文档,自身的帮助文档也非常强大;如果你是linux高手,高手的境界一般都选择debian,因为高手能在低配的vps上稳定运行系统;而ubuntu,系统虽然免费,但它适合有钱人玩,它占用的资源是比前面两种系统更高,而vps基本就是卖内存,内存越高,价格越贵。
我们运行着一些全球最大的互联网的营运,因此我们对可靠性和稳定性非常重视,是我们的第一要务。为此,我们只使用Linux来支撑顾客的系统。但是,我们应该使用哪一个Linux的发行版?答案是,CentOS。 为什么呢?
作为一个庞大的系统运营商,在很长的一段时间里,我们需要在多种大型系统中找到一个可靠的,可预测的系统,我们需要从世界上最强大的软件供应商和开源项目中获得强有力的支持。对于那些最常用的系统,我们需要文档,工具和全球性资源。
正因如此,RedHat / CentOS系列发行版正是我们的选择。他们能够满足以上所有需求,而且问题相对较少、长期稳定,这使得我们能够为成千上万的运行了不同配置、服务和应用的系统提供世界级的维护。
RedHat Enterprise Linux (RHEL)是黄金标准的企业发行版。它每五年左右更新一次,在系统的稳定性,前瞻性和安全性上有着极大的优势。每当新的主版本发行后,比如 5.x亦或最近的6.x,所有版本和代码都将保留不变,只有安全问题或是主要的bug,例如后门,端口之类的问题,会通过发布新的子版本来修复。
CentOS是RHEL发行版对应的开源版本,通常在RedHat的发布后就会很快发行。我们使用CentOS的原因在于RHEL发行版的标准支持服务费用非常高,大约每台服务器800美元左右,对于我们很多拥有数十台甚至上百台服务器的用户来说,这是必须要控制的成本。
RHEL/CentOS系统有两个潜在的问题。
首先,一旦确定了主版本,,除了安全问题和严重故障会被修复以外,其他内容将不会做任何改变。这虽然对稳定性有好处,但是对许多服务不利。比如MySQL和PHP服务,它们在这五年的CentOS/RHEL主版本发布周期中会进行繁重的开发和大量的修改。例如,MySQL5.0 是当前RHEL/CentOS主版本所默认使用的版本,但是当前MySQL已经更新到5.1和5.5版本了。
幸运的是,这个问题被Yum软件包管理器轻易地解决了。如此以来,那些主要的软件,例如当前RHEL/CentOS中实际的组件,包括内核和所有工具等仍然来自发行版, 但是那些附加的软件,例如Nginx,Apache,PHP,Java和MySQL等等来自更新的软件源例如Fedora; 或者直接从开发商获取更新的版本例如MySQL。 在我们这里,我们有自己专用的安装镜像来全自动的处理所有这些事情。
其次,CentOS的发行会滞后于RedHat的发行,包括关键的补丁和修复。这在RHEL 6.x的发行周期中尤为显著。但是根据我们的经验,这没什么好担心的,对我们来说永远不会成为问题。
很多人询问我们为什么不用基于Debian的系统,例如Debian或者Ubuntu服务器。如果在别无选择的情况下,我们的确会支持这个建议,但是根据我们的经验来看,这些系统并不如RHEL/CentOS来的稳定和可靠。
我们认为,这在某种程度上是由于他们过快的发展和各个版本、组合之间较少的测试且不成熟所导致的。然而尽管他们非常流行,但是主要的服务商和项目都仍然首选RHEL/CentOS系统,因为这样他们就可以为企业顾客提供服务,(对Oracle和MySQL更是如此)。除此之外,基于Debian的系统有许多内核和稳定性问题,尤其是在我们的云计算服务中。
对我们而言,唯一使用Debian/Ubuntu的原因是:
“它们能够为一个系统提供必要的特殊服务时,尤其是当一些驱动程序或者一些IO 子系统需要一种新的内核的时候”。例如,ext4 文件系统或在最近的内核中日志的改变等;现在,所有这一切都包含在了RHEL/CentOS6.x中。
当然,多数Linux开发者都使用的是Ubuntu的桌面版,而且可以理解的是,他们更倾向在开发生产时使用相同的系统,并且还能使用很多有趣的工具。但总体上来说,我们依然认为RHEL/CentOS是一个更优越的部署平台,并且已经有十多个客户成功地转向使用CentOS 作为生产环境并且没有任何问题,但这仍然是艰巨的任务。
总的来说,你将更乐于看到一个良好管理的CentOS 系统。我们有成千上万台服务器使用CentOS平台,而每年平均只有一台服务器崩溃。我们也很难想象它竟如此罕见,所以,挑一个优秀、迅捷、可靠的平台吧!
今天我决定写一篇关于如何选择Linux发行版的博客文章,以便于大家借鉴。
正文共:3680 字
预计阅读时间:10 分钟
很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐我_____,你觉得怎么样?”我通常会以这样的问题回复:这取决于你想做什么?
今天我决定写一篇关于如何选择Linux发行版的博客文章,以便于大家借鉴。
我与Linux的历史
我觉得我应该先介绍一下我和Linux的过往,以防你在阅读本文时无法理解我。当然,如果你不在乎,你也可以跳过。
我在1996年左右开始使用Linux。我和Linux的第一次亲密接触是Slackware 4,这是我在Egghead Software购买的一套CD(没错,是旧的)。我的一个朋友告诉我这个Unix非常棒,他说我只需要尝试一下,就会喜欢它。
我读过关于Unix的很多文章,对此非常好奇。我在互联网服务提供商那有一个shell账户,我曾经笨拙地修改过。在使用Unix的起初我有点犹豫:“为什么我要用Unix?”他的回答很简单:“因为你非常讨厌Windows 95,喜欢DOS,所以你会喜欢Unix”。然后我就买了它。他是对的。
我拿了一个旧硬盘来安装。经过若干小时又若干天的战斗,我终于启动了桌面,可以开始运行了。我不知道是什么驱使我渡过了这段难熬的时光,但我心中有一个念想就是我一定一定要弄清楚如何使这个系统工作,即便困难重重。我必须非常了解我的硬件!简单的事情突然再次变得困难起来。最终我成功了。我开始构建一些愚蠢的脚本以获得乐趣。系统速度很快,这种可以掌控操纵一切的感觉棒极了。
有内置的C编译器吗?因为不懂这个,因此我刚买了某个非常昂贵的Borland软件包。但是这个操作系统内置了一个编译器?!还有免费的图像编辑器?!我被完全迷住了!
此后多年,我尝试过大量发行版。甚至是BSD Unix系列的。我的“主计算机”总是双启动的,其中一些是纯Linux。21世纪初的大部分时间里,我完全避开了Windows。所以到今年为止,关于我的“主机”,它是这样的:
- 1996-1999:Slackware
- 1999-2002:Redhat(及FreeBSD)
- 2003-2005:FreeBSD / Knoppix
- 2005-2009:Gentoo
- 2009-2011:Linux Mint
- 2011-2018:Arch Linux / Debian
我使用过大约50个或更多发行版,运行在我的“主机”上,用于工作、浏览和开发以及其他任何事情。很明显,Arch迄今为止运行时间最长,主要是因为我对其进行配置之后,很长一段时间遗忘了它。
因此,最近几年我“真正用于工作”的主要发行版本是Debian。
下面,让我们谈谈你应该使用哪个版本。
你想做什么?
我将根据常见需求对Linux版本进行分类。这里有一些重叠的地方,而且如果准备充分的话,这些Linux发行版任何一个都可以满足你的期望需求。Linux的一大优点是允许你随心所欲。但是,归根结底,发行版之间还是有区别的,有些能为你做很多工作,或者某个版本具有更适合针对某个目标的设计。下面我会根据实现目标的最简单途径来对这些发行版分类。
我是刚刚入门的Linux新手
有很长一段时间,我会给Linux新手推荐Ubuntu。就易用性和兼容性而言,Ubuntu非常棒。但我现在非常讨厌Ubuntu。不过,我仍然会在我的课程和文章的demo中使用,因为用Ubuntu的人很多,但我不喜欢他们运行这种发行版的方式——内置Amazon广告软件,而且Unity相当令人讨厌。
所以如果你刚入门,我的建议是:
- Linux Mint Download
- Debian Download
这是一个骗局,因为Linux Mint与Debian有密切关系,但Mint看起来更漂亮并且有一些跨平台的东西。
出于以下目的,可以使用这些发布版:
- 类似Windows的体验
- 安装简单
- 可靠
- “类似Linux”,且不自成一派
- “恰好管用”
好吧,最后一条真的很重要。我们需要的就是有效和管用。这些发行版都是即插即用的。设置好了即可。我的开发机器现在越来越依赖Debian,因为有时我并不关心操作系统,也不希望它来妨碍我。当我处于一种只想构建东西的状态时,就会所向无敌。
我想了解关于Linux / Unix和硬件的更多信息
也许你正处于一种嬉戏和试验的心情。你想挑战自己,想要通过实践来强迫自己学习。这很好,这也正是我所做的。
如果你想挑战自我并学习一些东西,我的建议是:
- Slackware Linux
- Arch Linux
- Gentoo Linux
- FreeBSD(不是Linux,但适合分到这一类别)
这些发行版中的每一个都需要大量配置,硬件发现和源代码编译。Gentoo,你必须编译所有东西。这是绝对完全掌控操作系统的好方法。
出于以下目的,可以使用这些发布版:
- 完全掌控你的电脑和操作系统
- 了解Linux内部
- 精简的优化系统
这需要付出代价:主要是时间。完整安装这些可能需要几个小时。从好的一面来看,它们可以运行很久。
我在Lenvov上安装Arch Install,差不过周六一天时间都花在了配置上,之后又大概花了10个小时甚至更长时间。它毫不费力就运行了5年(直到笔记本电脑硬件报废)。偶尔需要更新一下,但是它让我可靠地使用了整整5年时间。因此,这是一次很有价值的投资。
我想要成为技术弄潮儿
好吧,也许你不在乎其稳定性如何,只想要最新最好的软件。你想要摆弄内核,或者做一些其他程序员昨天提交的很酷的玩意儿。
为了稳定性和安全,现在你需要的是最新的:
- Arch Linux
- OpenSuse Tumbleweed
- Fedora Rawhide
- Gentoo Unstable
出于以下目的,可以使用这些发布版:
- 为学习最新的东西而甘冒风险
- 最新和最伟大的功能
- 有趣的配置以便于处理重大更改
公平地说,我个人使用过Arch和Gentoo,虽然没有出现严重的稳定性问题,但是是有风险的。
我只想完成一些工作
好的,也许你并不关心操作系统的细节,只是想要GSD(Get Stuff Done完成任务)。也许你想要构建Node或GoLang app,道听途说Linux最适合。
如果你想完成工作的话,下面这些很有帮助:
- Debian Download
- Fedora
- openSuse Leap
- Ubuntu Studio (虽然它是Ubuntu,但可以很好地组合在一起)
出于以下目的,可以使用这些发布版:
- 运行平稳,维护量低
- 最小配置
- 大部分事情可以自动完成
- 兼容硬件和软件
正如我所说的,我现在经常使用Debian,因为我通常只是制作一些东西,而不是真的想要修整和优化。它稳定,快速,并且不会妨碍我的行事方式。我正是在Debian 9中写的这篇文章。
我想构建服务器
也许你想建立一个Web服务器或虚拟主机,却不知道要用哪个版本。此分类中的第一个就是用于虚拟主机的主要发布版,所以如果你想要一些可以模拟托管软件的网站的东西,那么试试CentOS(或学习Docker!)
下面这些是用于虚拟主机的坚实可靠的帮手:
- CentOS
- Red Hat Enterprise Linux (RHEL)
- Debian 9 Download
- FreeBSD (不是Linux,但适合分到这个类别)
出于以下目的,可以使用这些发布版:
- 稳定性
- 安全
- 支持其他出于同样原因的程序员使用
我相信任何Linux发行版都可以有效地用于虚拟主机,但有些会更繁琐。
我想尽可能大地提升性能
如果你是那种每一次性能提升都想出成果的类型(曾经我也是如此),那么这些发行版对你而言肯定很棒。其中一些需要编译所有源代码,以便为处理器生成优化的二进制文件。超有意思!
- Clear Linux (For Intel CPUS, by Intel)
- Gentoo Linux
- Arch Linux
- FreeBSD (不是Linux,但适合分到这个类别)
出于以下目的,可以使用这些发布版:
- 显著的性能提升
- 高负载计算
请记住,硬件已经达到了性能要求,因此它不再像以前那样显得至关重要。15年前,你可以破解内核并拨号服务,然后发现会有一个大的提升。现在,硬件的差异可以忽略不计。运行任何Linux都能够非常流畅。
我想要安全的桌面
或者你想建立一个很难侵入的系统,无论出于何种原因。有若干安全性发布版值得成为关注的焦点。如果你真的担心锁定主机,那么可以看看这些:
- TAILS Linux
- Alpine Linux
- CoreOS
- TENS Linux (DOD Project)
- Tin Hat Linux
- OpenBSD (不是Linux,但适合分到这个类别)
出于以下目的,可以使用这些发布版:
- 安全性
- 匿名性
我想要最小的计算机系统
好的,有时你只想要一些精简和轻巧的东西,完成某项工作即可。我绝对理解。也许你有一个想重新定位的旧奔腾处理器。也许操作系统只是目标的一小部分,你想要最小化的容量和配置。
- ArchBang
- Lubuntu
- Puppy Linux
- Tiny Core Linux
- Bodhi Linux
出于以下目的,可以使用这些发布版:
- 将在旧的硬件上运行
- 尽可能最小化
结论
可能你觉得这篇文章看上去有点琐碎,但你可以根据你的具体情况和实际目的,从我给出的分类中挑选Linux发行版,并将其配置和调整成你想要的模样。这就是Linux的本质,最大化的可自定义。这些都是允许快速入门的极佳发布版。如果你认为我有遗漏的地方,欢迎随时在评论中留言。
不管你是干什么的,如果你因为对Linux好奇而打开这个页面,那么务必请尝试一回!就是现在!绝对物有所值,让你爱不释手!