Linux 发行版劝退指南

戴高乐说过一句名言:“管理一个生产365种奶酪的国家真是难上加难”,那要搞清楚有超过300个发行版的 Linux 则是难上加难的平方。而我,就是要告诉你他们难在哪里。

注意:这篇文章的前半部分很大程度上是玩笑性质的,只为博君一笑。里面含有大量尖酸的评论,其内容有一定事实基础,却言过其实,不要当真。我对此的解释在文章末尾。

Arch

Arch 用户通常与众不同。Arch是一个滚动、遵循KISS(Keep It Simple, Stupid)原则、且“以用户为中心”的发行版。将这三点翻译成人话就是:软件经常更新、发行版的工具简陋到爆炸、用户需要重头开始配置。

与其他发行版相比,Arch 强行要求用户从命令行开始安装。这就是为什么 Arch 安装教程满天飞:只有 Arch 需要一遍又一遍的指导用户如何安装。

Arch 的发行版工具也非常简陋, pacman 的功能比 aptdnfzypper 都简陋。由于不能解析布尔可满足性问题pacman 几乎不能处理依赖之间的版本关系。同样,为了弥补这种简陋,Arch 社区开发了各种 pacman 的包装,为其孱弱的能力铺上一层遮羞布。

Arch 官方源那不充分、不平衡的打包策略通常不能满足 Arch 用户“日益增长的美好生活需要”,所以他们又发明了一个玩意叫 AUR ,理论上一个用户把打包的脚本传上去,然后所有用户都可以重复使用。但是官方又对这种需求“犹抱琵琶半遮面”:想要 AUR?装个在 AUR 里的 pacman 的 AUR 包装再说,如蜜传如蜜,真棒。

Arch 也是自欺欺人的典型。一个包官方觉得没必要,但用户喜欢,那就放 AUR,同时官方也不提供开箱即用的体验,鼓励用户自己动手。所以通常 Arch 用户都会有许多第三方包,也会有许多自定义的配置,显然是“Smart and complex”,但他们在推荐 Arch 的时候又说他 KISS 了。一会儿说 pacman 多么简洁优美,自己却拿着 pacman 包装玩的不亦乐乎。

Arch 的设计理念,只有滚动得到了真正实现。

Manjaro

Manjaro 是 Arch 的衍生发行版,因此你要忍受更多缺点:Arch 的缺点,和 Manjaro 的缺点。简单来说,就是 Manjaro 虽然解决的 Arch 的安装困难,却会在你余下的生命里折磨纠缠,还不告诉你问题出在哪里,假装一切安好。

现在 Manjaro 的大厦已经建成,只是上面飘着 Arch 这朵乌云。Arch 是自欺欺人,Manjaro 就是双倍的自欺欺人——假装自己是 Arch 的升级版。

他们不自己编译部分软件包,反而直接从 Arch 源里面拿,但是 Arch 的包依赖又与 Manjaro 有差异。“他們把這種難看的做法宣傳成他們的優勢,還為了這個看起來是優勢故意去抹黑 Arch 作為上游的打包質量…做法就很難看了。”

同时,他们也假装自己是 Arch,使用 AUR,但 AUR 也是按照 Arch 来写的……

Manjaro 还非常有创造力,他们会发明版本号,在 Linus 还在 5.19-rc8 时,他们就把 5.19.0-1-MANJARO 交到用户手中了,对,RC 被当正式版给了用户。

如果你用 Manjaro,那么平日里谦谦君子般的 Arch 吧主天苯博士会友好,但坚决的建议你不要用:

天苯博士引用的文章是来自由竹林里有冰的博客。我就不在此剽窃菊巨的文章了,我只能说,看了这篇文章,我不禁潸然泪下,为了我从前 Manjaro 使用的经历而悔恨。

同样,你在社区内也会受到菊巨们的鄙视与微词。

RHEL 与 CentOS 类

这是给企业用的,不是给你用的。

红帽公司推出 RHEL ,然后一帮子想吃白食的人弄出来了 RHEL 的复制品 CentOS。还有 Rocky Linux 和 AlmaLinux,它们是 CentOS 被红帽弄死后的继任者。

他们设计的标准就是你的系统10年才大更新一次,软件包版本被彻底卡死(10年不怎么变!)而用户只能望新软件包兴叹——人生有几个十年?相信我,一辈子只更新过9次系统对于任何电脑用户来说绝对不算光荣。

同时官方只提供有限的软件包,用户不得不添加第三方软件包和软件源,或者自己编译。据说这一特性把“用 Arch 做服务器”的大佬气到去用了 FreeBSD。

Fedora

有人这样评价:“红帽公司通过从免费发行版转而销售异常无聊的企业服务器版而赚取了数十亿美元。这让那些吃白食的人很不高兴。Fedora 是红帽公司扔给他们的骨头。“

当然,吃白食是有代价的,红帽公司把 Fedora 当作某种程度的实验场,不过 Fedora 用户也得到了回报:你知道在俄罗斯和蒙古都有 Fedora 用户的雕像吗?

他们还通过所谓的社区流程,通过改掉GCC的默认选项,让所有 Fedora 用户的软件都变慢(GCC 在编译内核时慢了2.4%,Blender 也差不多,Python 最高可以慢 10%)——而这一切都是为了让 Facebook 和 Netflix 的程序员在 Debug 的时候少等几秒钟。

openSUSE

这是我正在使用的发行版。如果我的黄汤有幸灌到了你的嘴里面,你就会知道 openSUSE 分为两个大发行版 openSUSE Tumbleweed 和 openSUSE Leap,但我在此建议你别用。

Tumbleweed 是滚动发行版,经常更新,所以别用。(记住,经常更新也就意味着可能经常出小问题)然后天才般的运用一个叫 Btrfs 的东西在你每次更新的时候给你保存一个快照。这个设计很美好,想想看,每一次失败的更新、每一次错误的配置,都可以有快照兜底。

这非常好,如果 Btrfs 能没有那些莫名其妙的小问题就更好了,根据社区的反馈,使用 Btrfs 可能会带来以下“问题”:

  • 虚拟机镜像损坏
  • Grub 无法识别导致电脑无法启动
  • 后台莫名其妙占用 CPU
  • 复制文件到U盘上会损坏文件

考虑到对你心情的潜在影响,别用。

Leap 则是对标 CentOS 系的发行版,但是又不提供10年的维护周期。这基本上代表着两件事:一是你要忍受 CentOS 系的坏处,二是得不到 CentOS 系的好处。另外,这也是个要死掉的发行版:SUSE 公司要调整业务方向,专心搞容器化,Leap 前路难测。所以别用。

这两发行版下面还有更多的小官方的衍生发行版,也别用。

Debian

Debian 项目可以说是 Linux 发行版正统,在 1994年吸引到了自由软件基金会(就是搞 GNU 的那帮人)的赞助,但现在又背叛了他们(因为他们在 Debian 里含有可选的非自由部件!)。被 Debian 社区觉得有问题的开发者直接撂挑子去了 Arch,另外他们最近又陷入了组织的政治问题。

原版 Debian 不仅难以安装(因为他们对非自由欲拒还迎),软件包还特别旧(和 RHEL 一样“稳定”),除非你要的就是这两点,否则为什么不试试——

Ubuntu

“Ubuntu 是一个古老的非洲单词,意思 是我用不来 Debian。”

Ubuntu 的母公司 Canonical 对上游项目的贡献十分小,这也是另一种吃白食:他们不把补丁交给上游 Debian,不提交用户提交的翻译给上游软件包的开发者,开发了一堆除了正统 Ubuntu 信徒都没有人想用的玩意,比如 Snap ,有下游发行版甚至专门删除 Snap 。他们还和亚马逊一起出卖用户的搜索记录。

当然,Ubuntu 有着广大的适用人群。试想一下,有一天你出人头地,上了清华或者北大,你想卷死所有人。你有着碾压 99.99% 中国人的智力与理解力,但是你却不知道怎么让笔记本关闭盖子时不休眠——那 Ubuntu 就为你量身定做。

NixOS

想来点真正的“杀手级”应用吗?NixOS 就是你要找的系统!

“可重现构建”、“声明式配置”、“可靠性”,这就是 NixOS 宣称的特点。

可惜技术上 NixOS 他们唯一实现的吹牛是“声明式配置”。实际上 NixOS 构建既不可重现(并不符合可重现构建的定义),也不可靠(里面部分软件包是通过直接打包二进制而非源码产生的,因为他们搞不定“在 Nix 上面编译与构建”这种发行版该做的工作,于是直接修改二进制)。

除了其官网上声明的“可重现构建”、“声明式配置”、“可靠性”以外,NixOS 基金会其实与军事公司 Anduril 有染。在其他 Linux 发行版还在研究 OOM Killer 的时候,NixOS 走的更远,董事会成员直接与军事公司签订了保密协议,可能是打算真的当个杀手。2023 年有人发现了这一点,然后 NixCon 拒绝了他们的赞助;结果 2024 年 NixOS 基金会又想把他们请回来,有贡献者受不了直接走人了。

该军事公司生产无人机,并且为 NixOS 的 CUDA 技术栈做了不少贡献…… NixOS 确实是字面意义上的“杀手级”应用。

说明与解释

看了上面的胡言乱语,如果你是其中提到的发行版用户之一,您觉得有被冒犯到么?

我写这篇文章就是为了调侃这种发行版的使用方法——和发行版的哲学对着干,怎么也舒服不了。同时也有一些人,他们没有理解发行版的定位就开始吹捧或批评,也是让人哭笑不得的。

我觉得用一个操作系统,就要理解和接受他的哲学与定位。如果不理解或者不接受,那就别用。否则只会向上面一样写出让人哭笑不得的想法。前面已经说了,这些内容有事实基础,却言过其实,甚至张冠李戴。

如果你还是觉得我前面的内容有些难以接受,下面还有“解毒篇”:

Arch

显然,Arch 的 KISS 是开发者的 KISS 而不是用户的 KISS。正因为开发者做到了 KISS 和以用户为中心,才能鼓励用户自由发挥。所以批评 Arch 在使用场景下不 KISS 完全是生吞活剥了 KISS 一词。 pacman 的功能确实不算丰富(我说了不算,来自 Arch Linux 社区的依云在知乎上自己说的),但他能做好自己的工作。不过那些说 pacman 功能强大的人我同样也不理解,在我看来是为吹而吹。

Manjaro

关于 Manjaro 的缺点,竹林里有冰的文章已经说的清楚了,我不再赘述。

但 Manjaro 的定位就决定了他的缺陷被他的目标用户忽视。没错,Manjaro 的做法确实没那么利落,但其本身的使用体验也没打折扣。特别是对于 Manjaro 的目标用户,Linux 新手来说,那些缺陷是他们关照不到的。小白要给 Manjaro 加 ArchCN 源可不是 Manjaro 的错,AUR 也将就能用。

因此对于那些缺陷,在意的人不用,用的人不在意。Manjaro 不在我的“新手推荐”名单上,但我也不会去劝退别人,除非他遇到相关问题。

RHEL 与 CentOS 类

RHEL 是给企业用的,CentOS 类是因为 RHEL 的开源本质而存在。又要新又要稳是不可能的,除非用容器。有些人一边要企业级的稳定,一边抱怨软件包版本旧,这就很奇怪。

Fedora

Fedora 确实是技术的实验场。没有他们的实验,新技术的测试就会更加困难。Pipewire、Wayland 等新技术都是 Fedora 率先实验。这个软件包版本的新并不同,我目前还没看到有类似 Fedora 地位的其他发行版。很多人忽略了一个问题,发行版需要时间和资源开发,而时间和资源不是免费的。

openSUSE

openSUSE TW 基本上就是对标的 Fedora ,为了 SUSE Linux 做一个排雷,但新技术的实验其实并不多。而 Leap 其实是与 SUSE Linux 几乎同步测试,同步推出,Leap 的测试也是 SUSE Linux 的测试。

至于 Btrfs 的问题,我引用 Farseer 的话——對這種“我在用btrfs,我用出了玄學問題找不到原因那就一定是bug btrfs 的問題”的抱怨我已經吐槽累了。

Debian

Debian 目前服务器应用应该比桌面多,桌面用户抱怨软件包旧那就去 Debian sid。同时服务器在不少情况下也不需要那一票“非自由”的软件和固件,所以是需要单独下载的可选项。

Ubuntu

没错,Ubuntu 就是给那些也许能考上清华,但却不知道怎么让笔记本关闭盖子时不休眠的人用的。这些人用 Linux 只是因为他们需要的软件在 Ubuntu 上,对电脑怎么运行他们并不关心。所以不能拿一般 Linux 用户的视角去看待。

还是那句话:对于那些缺陷,在意的人不用,用的人不在意。

NixOS

非常遗憾,NixOS 和军事公司有直接联系是真的。他们不可重现而且直接用二进制也是真的

往大了想,互联网最初也是用于军事目的发明的……再者开源软件并不能阻止任何人使用他的代码。虽然“允许军队使用你的自由软件”和“由军队赞助”显然有云泥之别,忽略这些道德问题也挺正常的——道德既主观又微妙。

“Linux 发行版劝退指南”的3个回复

    1. 但是你为什么要对绿巨人这样?

  1. 我觉得文章很好,每个发行版都有自己的个性,觉得合得来就一起玩,小毛病什么的也不影响友谊。而作者的“挚友”应该既是 openSUSE了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注