Manjaro 不是 Arch Linux

“…Manjaro 的存在本身我觉得挺好的,毕竟是继承了 Arch 的包管理器,也是对 Arch 的支持了。然而用户总是把它当 Arch 跑来论坛和群里问问题,有时候还不说明白自己用的是 Manjaro,很烦。…” —— 百合仙子(lilydjwg)

缘由

不知道是出于何种原因,Arch 社区里总是会有数目不少的 Manjaro 用户:他们完全不了解 Manjaro 和 Arch 是两个完全不同的发行版,也并不了解 Arch-likeArch-based 的区别,甚至不事先声明自己用的是 Manjaro 就开始抛出各种并不属于 Arch 的问题;这无疑基本得不到解决方案,也会浪费别人的许多时间。

写本文的目的,是希望部分 Manjaro 用户了解,Manjaro 是 Manjaro,不是 Arch Linux,更不是“安装简易的”Arch Linux,或“配置好的”Arch Linux。

我对 Manjaro 本身没有负面看法,我觉得它是成功的发行版。

Manjaro 和 Arch 天差地别

工程上

Manjaro 和 Arch Linux 在工程上的差别,就已经说明了它们是两个不同的发行版。

官方软件源

如果说 Manjaro 和 Arch 有什么接近的地方,那就是他们都在用 pacman 作为自己的包管理工具。但是,极其值得注意的是,Manjaro 的软件源,早已不和 Arch 的相兼容;正如印欧语系下很多语言长相非常接近,但是你是不可能交叉混用它们的词汇的。

二者拥有太多不同的地方,这导致很多问题的解决方案并不会完全一样。并且,Manjaro 的更新策略不如 Arch 激进,它的软件版本一般都落后于 Arch 若干周;而对于这类滚动更新的发行版来说,若干周的版本差距足以造成严重的兼容性问题。

AUR

Arch Linux 和它的同类操作系统有个庞大的软件来源:AUR(Arch User Repository,Arch 用户软件仓库)。

由于 PKGBUILD 的学习成本很低,并且打包实在是方便到极点了,AUR 这种仓库才成为可能。可以说,它涵盖了几乎所有的常见 Linux 应用程序或实用工具。Manjaro 也可以使用 AUR,但是可能会经常遭遇问题。

AUR 实际上不提供现成的软件包,而是提供一个 PKGBUILD 和少量的相关文件,让用户自己获取、编译(有时候不需要)、打包一个软件包,而该过程对其构建依赖和依赖项的要求是很严格的。一旦 Manjaro 提供的仓库里的包名称不同,或版本不符合要求,包构建就会失败;更有某些包即使能如愿构建(或修改 PKGBUILD 来构建),也无法正常工作,而这通常也是基础软件包的区别造成的。

第三方软件源

Manjaro 不可能使用为 Arch 提供的第三方软件源,比如 Arch CN 源。这主要是因为 Linux 不要求,或者说不崇尚 ABI 兼容,这意味着几乎所有的软件都必须与构建它时的动态链接库的版本匹配(除非自己包含一套需要的库,或暴力静态链接)。

一旦某库的版本发生改变,使用该库的所有软件包基本都需要重新构建;而为 Arch 提供的软件源,当然只会和 Arch 官方提供的库版本同步。鉴于 Manjaro 的官方源内的软件版本通常落后于 Arch,使用为 Arch 提供的第三方软件源就是几乎不可能的。

观念上

Manjaro 的某些做法,已经不再符合 Arch 之道

K.I.S.S.

K.I.S.S. 是 Keep it simple, stupid 的缩写,这是 Arch 对所谓“简洁”的最基本要求。换句话说,Arch 希望自己在工程上足够简洁,并不愿意刻意隐藏内在的复杂性。

“如果你试图隐藏一个系统的复杂性,你将得到一个更复杂的系统。”

很显然,隐藏了系统复杂性的更复杂的系统一旦出问题,诊断和解决就会难如登天。

Manjaro 很明显地违背了 Arch 对“简洁”的要求:

  • Manjaro 有图形化安装界面,这是试图隐藏系统复杂性的行为。
  • Manjaro 为用户预装了过多的东西,这些东西很多时候用户用不到,也可能不是用户想要的,预装桌面环境则更是如此。

现代

作为滚动发行版,Arch 要求所提供的软件包是(不会损坏系统的)最新的版本。而如上文所述,Manjaro 实际上没有做到这一点。

以用户为中心

Arch 永远以用户为中心,而不是试图变得所谓的“用户友好”;Arch 只为满足贡献者的需求,而不是为了吸引更多的用户。而 Manjaro 很明显选了一条截然相反的道路。

善意的提醒

找对社区

不要希望 Arch 社区解决技术问题。问问是欢迎的,如果你事先声明是 Manjaro 的话。

前文已经说了,Manjaro 和 Arch 是两个不一样的发行版。很多 Manjaro 的问题,不能用 Arch 的解决方案解决;而对于那些只等着复制粘贴指令的用户来说,Arch 社区能解决的 Manjaro 的问题更是少之又少。

正确的途径是寻找 Manjaro 社区,去那里提问。那里会有 Manjaro 资深用户解决你们的问题。

合理选择发行版

不要声称自己用 Manjaro 的原因是喜欢用 Arch。这句话就如同“我喜欢踢足球,所以我一直在练习投篮”一样荒谬。

和平共处

永远不要攻击 Arch 配置繁琐。繁琐是自由的代价。这是 Arch 的选择,也是 Arch 用户的选择。Arch 将配置留给用户来决定,这也是 Arch 之道的一部分。

Arch 用户不觉得自己高人一等。劝导你前往 Manjaro 社区是善意的行为,因为正如上文所述,很多问题 Arch 社区也解决不了。很少有 Arch 用户看不起 Manjaro 用户,除非后者经常攻击 Arch 配置繁琐。

写在最后

客观而论,Manjaro 是很成功的发行版,但是请不要将它和 Arch Linux 弄混。如果你喜欢的是简便的配置和滚动更新,那么选择 Manjaro 是很合理的;但如果你喜欢的是简洁、自由和尽可能最新,那请使用 Arch Linux,而不要安装一个 Manjaro 并以 Arch 用户自居。