Linux 发行版
Linux 操作系统是构建在 Linux 内核之上的,然后包含用户图像界面、GNU 函数库、shell 以及各种办公、编译器、编辑器等工具。Linux 操作系统可以针对内核参数以及各种工具选择的倾向性不同就形成了 Linux 发行版,用户通常是面向 Linux 发行版来工作的。
各发行版简介
整个 Linux 世界存在五个基础的发行版:
- slackware: 最为古老的发行版,他的核心思想是力图成为 Unix 风格的 Linux 发行版。该发行版保持 KISS(Keep it Simple, Stupid) 风格。这在其包管理系统上就能够体现
- debian: 一个完全由自由软件组成的 Linux 发行版,以稳定著称
- redhat: 著名的商业发行版
- SuSE: 德国的商业发行版
- Arch: 致力于通过滚动发布来提供大多数软件的最新稳定版本
- Gentoo: 以让用户随意使用没有限制为原则,同样采用滚动更新的方式来发布,他所有的软件包括系统本身都需要通过自己编译来安装,安装难度甚至比没有提供 GUI 界面的 Arch 还要难上 100 倍
其他的发行版几乎都是以上五个发新版的分支,尽管每个发行版都有自己的理念,但是他们最大的不同都在于 Linux 包管理方式的不同:
- slackware 的包都是
tar.xz
(不过使用.txz
后缀),通常只需要在根目录解压缩就能够安装了(当然使用包管理会记录一些信息,但是完全使用 tar 命令也没问题),如果包中包含 doinst.sh 那么运行他就好了。通常依赖需要自己解决,不过 slackware 的理念就是系统尽可能包含所有的依赖库 - Debian 的包管理系统使用 dpkg 来管理安装包,并且提供了 apt 前端工具来自动解决 deb 包依赖
- RedHat 使用 rpm 来管理安装包,同样提供了 yum/dnf 前端工具来自动解决依赖
- SuSE 他最初是基于 slackware 的,后来引入了 rpm 包(使用 zypper 命令管理),不过他提供了 YaST2 这个非常好用的基于图像界面的系统管理工具
- Arch 他提供了 pacman 来管理安装包,同时提供了 aur 仓库允许用户上传自制软件包
- Gentoo 提供了 Portage 包管理系统,该包管理系统包含 ebuild 系统和 emerge 两部分,前者用于编译软件包,后者用于解决依赖(类似 dpkg 和 apt 或者 rpm 和 yum 这样的关系)
如何选择
上面五个发行版中 debian 和 redhat 几乎占据了半壁江山。在中国面向用户最多的 ubuntu、deepin 以及各种信创操作系统都是基于 debian 的。而面向商业使用的欧拉、阿里云自己的操作系统也都脱胎于 redhat 系。而由于 redhat 系需要商业授权(尽管存在 centos 这样的不需要付费使用的)因此更推荐 debian 一些。当然这不绝对, Linux 的发行版比想象中的区别要小。
个人用户很多人推荐 Arch 因为 AUR 的存在一些比较特殊的软件都有人给出了可用的版本
time line
gnuclad 项目能够生成一个所有主流 Linux 发行版的支系图,可以在 LinuxTimeline 中查看生成的图。从中我们可以看到尽管 Linux 发行版众多但是实际上都有源头: