msg7086
2018-11-14 14:54:55 +08:00
先说一些基本分类。
首先是滚和发。
滚动版是指发行版没有固定的发行周期,软件包时常在升级。今天装了 PHP7.1,明天说不定就能装 PHP7.2 玩了。
发行版则完全相反,有比较固定的发行周期,一旦临近发行,所有的软件包版本都会冻结,并且之后只会有补丁包,而不会有功能更新。比如 Ubuntu 18.04LTS 自带了 Nginx 1.14.x,那么这个版本就永远不会推出 Nginx 1.15 或者 1.16 版本。要用新版本,就只能安装(或者跨版本升级到) 18.10 甚至 20.04LTS,又或者安装来自第三方的软件包。
然后其中又要细分。
比如滚动版中,Arch 是全系统滚动,一旦系统升级,则是所有的软件包一齐升级到最新版。选择性升级一般被认为是不受支持的操作。Gentoo 一般可以针对单个软件包版本进行升级,所以可以选择性升级部分软件,而保留其他软件的旧版本。
发行版中,RHEL/CentOS 一般有 10 年支持期,发行间隔也很长。而 Debian 和 Ubuntu 则是 5 年支持期,发行间隔一般只有 2 年。
然后是用途。
RHEL/CentOS 一般是企业软件环境用得多,因为他们的支持期长,发行间隔长,对于企业软件来说,不需要频繁更新,一个软件开发好可以炒 10 年冷饭而不需要适配新系统。
Debian 一般是开源圈子用得多,因为 Debian 是一个社区驱动的版本,大家都是开源界的大佬,奉行自由精神。很多学校也会支持这种精神,比如我们学校的核心服务器,凡是装了 Linux 的都是用的 Debian。( Debian 还有 testing 和 unstable 分支可以让发行版滚起来,有需要的时候还是很方便的。)
Arch 比较适合喜欢尝鲜的人。可以类比成 Windows 10 Insider。一有新版本软件包出现就立马滚上去,不滚不舒服斯基。但是因为软件版本经常变,所以不适合跑那些需要稳定跑的软件。比如你跑个 PHP 论坛,只兼容 7.1 以下,突然 Arch 某天上了 7.2,把 7.1 砍了,你是升还是不升呢。(只是举个例子,实际上不一定会砍旧版,但是一旦砍了你就完了。)
Gentoo 嘛比较适合对自己的机器有控制欲的人。我想要这个软件是某个特别的版本,OK 我就用这个特别的版本来编译。这种比较适合有特殊需要的人。
还有像是 Slackware 之类的小众路线我不太清楚,就不多说了。
以上是主要的区别。至于 Mint Deep 忙加萝之类的,就是在底层的系统上再做定制调教。比如 Ubuntu 就是拿了 Debian 的 unstable 分支过去以后,加装自己的软件(比如以前 Unity 之类的应用),包装成一个开箱即用的版本。因为底层没变,所以通常习性和底层比较类似。忙加萝你还是得滚来滚去,Ubuntu 则还是和 Debian 一样一次冻结,两年一发。
挑选发行版可以从发布习惯和用途上来选择。然后再在虚拟机里实际跑一下试试看。比如你提到了 Arch,不妨开个虚拟机实际装一下 Arch,看看能不能在一个小时内让系统引导起来。