前言
对于很多刚使用Linux的人来说,选择使用哪个Linux发行版着实是一件头疼的事情,特别是对于有选择困难症的人们就更是如此了。其实对于那些著名的Linux发行版本,都有比较明显的个性,具体选择哪些,也只是由自己的需求而定,当然,如果你很熟悉Linux的话,那么版本的问题就不是问题了,因为在根本上它们都是相似的。
那么它们的个性是什么呢?这就要从几个方面去定义了。
包管理器
或许这是各发行版之间最显著的不同了,Linux与Windows不同,各种已经编译好的软件包大部分可以通过软件源来下载,而且各种软件包之间都存在着复杂的依赖关系,这些依赖关系是很难手动去解决的,于是包管理器就诞生了。
对于包管理器,在Linux里面可以说是分派系的,现在主要分为以下三派
DPKG
这是Debian Linux家族的包管理器,使用它的发行版包括了Debian,Ubuntu,Linux mint等等,在其范围下有几个比较出名的工具,一个是在命令行使用的APT(高级打包工具),另一个是有图形界面的Synaptic包管理器,这两个东西的使用非常广泛,一般安装了Ubuntu等之后就直接可以使用了。
RPM
由RedHat创建的包管理器(Red Hat Package Manager),顾名思义,这个包管理器就是RedHat系列Linux所使用的了,其中包括了RedHat,Fedora,CentOS等等。在其下也包括了几个著名工具,一个是YUM,另一个是DNF。
Pacman
这又是一个流行的包管理器,主要用于Arch Linux及其发行版之中,包括了Arch Linux和Manjaro等。
当然,包管理器不止这么些,但主要的就是以上几个,其它的还有Gentoo上的Portage,openSUSE上的Zypper等。
桌面环境(DE)/窗口管理器(WM)
超强的自定义性可以说是图形化Linux的一大特点了,Linux的桌面环境(或窗口管理器)数不胜数,但这其实已经不属于选择发行版的范畴了,但是因为每个发行版有其偏好的桌面环境,所以也放进考虑范围。
桌面环境可以按轻量级和重量级来分。
轻量级
XFCE
一个最常用的Linux桌面环境,由于其轻量化可配置型强的特点,几乎所有发行版可以简单地安装XFCE桌面,默认推荐使用XFCE的有Manjaro。
XFCE桌面
MATE
作为另一个常用的桌面,虽然可能没有XFCE使用广泛,但还是有许多人喜欢的。
MATE桌面
i3(wm)
这是一个经典的平铺窗口管理器,常被一部分人奉为生产力环境,通过常用快捷键操作就基本不需要鼠标了,当然,是否有生产力就因人而异了。
i3桌面
awesome(wm)
又是一个平铺式的窗口管理器,与i3相似,由于平铺式的桌面并非适合每个人使用,受到的争议也比较多,所以似乎还没有发行版将其作为默认桌面环境。
awesome桌面
重量级
KDE plasma
最出名的桌面环境之一,可定制性很强,同时流畅度也较高,由于其在KDE5版之前有着很多bug,所以曾经不被看好,但是现在是比较出色的桌面环境之一,桌面应用采用Qt进行开发。默认使用其作为桌面环境的有Kubuntu等。
KDE桌面
Gnome
一直和KDE不分高下,以简洁高效著称,可定制性没有KDE那么高,但也是不错的。在早期版本中存在内存溢出和单线程的性能问题,所以流畅度有所欠缺,在***的3.30版本中有所改善,桌面应用采用GTK进行开发。
Gnome桌面
Unity
在ubuntu16及以前在Gnome基础上特别定制的桌面环境,从ubuntu17开始被Gnome取代,已经不推荐使用,但是在使用上似乎比Gnome流畅度要高。
Unity桌面
Budgie
***的特点是简洁好看而优雅,对Gnome工具的兼容性高,特别之处不多,源于SoLus Linux。
Budgie桌面
DDE
Deepin DE,这是一个应用在Deepin上的桌面环境,Manjaro也有DDE版本,是一个国产的优秀桌面环境,从外观上就胜过了不少对手。
DDE桌面
Cinnamon
Linux mint的默认桌面环境,基于Gnome3,跟Gnome同源,因为我也不太熟悉,就不多介绍。
Cinnamon桌面
当然,也还有不少其它的桌面环境,但以上的是最常见的。
稳定性/安全性
其实对于真正使用Linux作为服务器或者生产环境的人来说,以上两点无非是一点小习惯上的差异,因为无论是包管理器还是桌面环境,大家提供的功能并非是不可替代的,很多时候是顺不顺手的问题,所以在这时候产生主要影响的可能就是其稳定性了。
更新方式
要说到Linux的稳定性,就离不开它的软件更新机制,一般来说Linux的更新方式有两种,也即滚动更新和固定版本更新。
滚动更新 滚动更新就是说系统可以通过频繁的小更新来使它的软件时刻保持***的状态,在这种方式下,很多时候就免除了需要手动更新软件版本的问题,软件的漏洞也能及时得到修复,安全性比较有保证,但与此同时,任何软件都保持***状态意味着它们的依赖关系可能会出现问题,因为一个软件的开发者可能还没准备好匹配它的依赖软件,它的依赖软件却先行更新了。所以滚动更新有时又缺乏稳定性,造成所谓的“滚挂”的现象。默认使用滚动更新的有Arch Linux,Manjaro等。
固定版本更新 固定版本更新的发行版一般会处理好软件之间的依赖关系再进行软件的发布,使得其稳定性有一定的提升,但它也同样有着一些问题,这种更新方式使得如果你没有更新整个系统到***版本,一些软件在官方渠道的更新方式上就永远无法获取到***的版本,如果有安全漏洞有时也无法及时修复,必须要从第三方地址或者手动下载编译来更新。当然对应的发行版也有一定的解决办法,如使用Backports。默认使用固定版本更新的有Ubuntu,RHEL,SLES等。
内核版本
对于固定版本更新的发行版来说,它的内核(kernel)版本也像软件一样在升级上有一定的限制,一般来说其内核的版本更新较慢,且会保持在初次发行版本的附近,在大版本更新的时候才会进行内核的大幅升级,新的内核会有一些新的特性,可以兼容更新的硬件,但有时候会导致兼容性问题。而许多滚动更新版本的发行版对内核的限制要宽松一些。当然这两者都是可以自己手动更新甚至手动编译更换内核的,但是使用不推荐的内核版本有可能导致一些奇怪的问题。
Linux中的上下游关系
Linux发行版中的上下游关系也就是各种软件包的上下游关系,从一定角度来看,上游就是软件包的开发者和与开发者关系密切的发行版,而下游就是验证软件包可用性和稳定性并提交反馈的发行版,上游项目的软件版本更新,而下游项目的稳定性更强,如Ubuntu就是一个下游发行版的典型。
帮助文档和社区支持
对于几乎所有的发行版来说,它们都有相应的帮助文档,也有相应的社区,但它们的内容却有很大的区别,有些发行版的帮助文档事无巨细,有些则是只教你如何使用。像Arch Linux的wiki页面就属于全面仔细的典型,具体可以查看Arch Wiki,而Ubuntu的社区则是活跃社区的典型,具体可以查看Ubuntu论坛。
主要的Linux发行版
寻找主要的Linux发行版,可以参考DistroWatch,其中页面点击次数的排名可以大概反映发行版的活跃程度。
DistroWatch
Manjaro
一个基于Arch Linux的Linux发行版,免去了Arch Linux配置的麻烦,但保留了其优点,基于滚动更新的机制,提供非常方便的内核更换软件,同时其支持Arch用户软件仓库(AUR)可能是最全的软件仓库之一,它提供了许多桌面环境的版本,包括KDE,Gnome,XFCE,MATE,DDE等等。
Manjaro
Linux Mint
基于Ubuntu/Debian的系统,从17.0开始,Mint基于Ubuntu长期支持版,以稳定性和简单易用著称,但软件更新较慢,有时不能兼容***硬件,提供Cinnamon,MATE,KDE和XFCE桌面环境的官方支持。
Linux Mint
Ubuntu
著名的Linux发行版,由Canonical公司发布,同时也提供商业支持,在易用性和稳定性上都有不错的表现,Ubuntu从17以后将默认桌面环境从Unity改为Gnome,同时其有对应KDE桌面的第三方版本Kubuntu。其包括长期支持版和***版,两者的维护支持周期不同。
Ubuntu
Fedora Fedora
是Red Hat在个人领域的版本,因为其被作为Rad Hat的测试平台,所以一般软件都很新,约半年一次的发布周期,引进新技术十分快速。
Fedora
openSUSE
德国工艺,特点是稳定,干净和漂亮,用户不算多,在服务器领域常用。
openSUSE
Elementary OS
从名字就可以知道,这是一个致力于外观的Linux发行版,它是基于Ubuntu加一套特定主题和应用程序发展而来的Linux,和Linux相似,但更加注重图形界面的应用。
Elementary OS
CentOS
这个版本来自于Red Hat的公开源代码,由于这个特点,在一段时期内曾被人广为推崇,很多教科书也是以此为例,但是在现在来说,这是一个更加适合作为服务器系统的Linux。
Cent OS
Deepin
深度科技发行的Linux,在某种程度上可以说是最简单易用的发行版,几乎不需要命令行就能完成大部分功能,其集成了大量自行开发的软件,以及接地气的软件商店,与CrossOver合作提供对Windows软件的支持,同时还支持原生模拟Android软件。
Deepin OS