我老早就开始接触 Linux 了,印象里是 2020 年的时候,当时疫情暴发导致小学全面停课,我只能宅在家里。家里大人忙工作,根本没人管我有没有认真听课。恰好上网课需要设备,我爸给我买了台电脑,我心想拿来学编程正合适,从此便一头扎进了代码的世界。

跟着电视上“黑马程序员”的课程学写代码,一边在 Dev C++ 里写算法题的日子真开心。我对技术毫无偏见,后端、前端、网络安全、逆向分析什么的当时都学了个遍,啥编程语言基本都懂点语法,虽然只是皮毛,但那种什么都想试试的劲头,现在回想起来依然觉得特别纯粹而快乐。

有一次学运维的时候,看到黑马程序员的老师在电视上用的那个系统很吸睛。屏幕边缘有一个侧边栏,和我用的 Win10 完全不同:看起来特别酷,感觉很新鲜。后来才知道那个图形界面叫 Unity,是 Ubuntu 的一个桌面环境,从那一刻起,我就对 Linux 产生了强烈的好奇。

对于当时的我来说,懂点 Shell 指令是很好的事情,因为我就是从指令开始接触编程的。在 Windows 上先学的 DOS 指令,像 dir、cd、ipconfig 这些早就玩熟了,之后才转到 Linux 学指令。这种过渡非常自然,让我觉得命令行不是什么可怕的东西,反而是最顺手的工具。

令现在的我感到奇怪的是,为什么当时的我会觉得 Linux 很酷,而不是觉得 Linux 桌面没有生态。或许这就叫作有点距离才是美,离太近了把你底子都看光了。那时候只看到它的界面新奇、操作自由,根本没意识到驱动、软件兼容这些麻烦事,纯粹是被表面吸引住了。

因为一次突发奇想,很想搞个类似雷电模拟器的小窗口系统,专门用来跑一些轻量应用,才去接触的 WSL。运行的第一个发行版就是 Ubuntu,当时好像还是 Ubuntu 20 的版本。一切都从命令行开始,没有图形界面,全靠黑乎乎的终端,我却觉得这是一种高级的浪漫。

这时候的 Ubuntu 还有点人性,没有狂推 Snap,而且 Windows 上的 WSL 系统是特制的,很多机制和原生 Linux 不一样。当时安装个包都费老大劲,因为全是指令,改啥镜像源都不会。现在总在社交媒体上刷到什么觉得 Linux 简单的,觉得别人不会用电脑就不是正常人,我觉得至少我还记得来时路。

用的第一个图形界面是 Xfce,有点简陋,界面像十年前的老系统,但当时的我居然觉得很新潮。后来笔记本坏了,父母就给我买了台平板电脑当补偿。因为很想要电脑,我把联想平板当成电脑来折腾,装 Termux 模拟 Linux 环境,外接拼多多买的绿色蓝牙键盘,还有那个钢制支架,硬是凑出了一套“移动开发平台”。

最快乐的时候是在 2023 年初二请假在家,每天不用上学,净是学习编程。跟着自己的兴趣去学习是最棒的,因为是在 Termux 容器里编程,所以换了好几个系统、桌面。今天装这个明天删那个,折腾得不亦乐乎,感觉每一天都有新发现。

因为 GNOME 需要 ROOT,所以把除了 GNOME 以外的桌面都玩了个遍:Xfce 是最常用的,轻量稳定;Mate 也挺不错,听说继承了 GNOME 2 的风格;最好看的是 KDE,因为它很像电脑,特效丰富,可是 680 玩起来很卡;LXDE 和 LXQT 最简洁,适合垃圾服务器,但功能也确实少得可怜。

那么玩了那么多系统,我的感想是什么呢?Debian、Alpine、Arch 都可以正常日用,唯独你 Ubuntu 没法安装浏览器。问就是没启动 Snap,安装失败了。每次想装个 Firefox 或 Chromium,系统就强行推 Snap 版。因为 Snap 需要 Systemd 才能启动嘛,没 ROOT 也没 Systemd,气得我直跺脚。

等 2024 年的 7 月份,我换了一台 RTX 4060 游戏本,装上了 Ubuntu 系统。对于当时的我来说,给我的感觉就是比 Win11 新鲜,界面干净利落。就是换显卡驱动太折磨人了,开源驱动不兼容,闭源驱动又要手动配置。我当时以为安装好驱动后会显示在面板里,结果这俩地方是分开显示的,折腾了一个小时才让独显正常工作。

本来用得好好的,Ubuntu 上啥软件我都从应用商店下载,玩个 MC 也是下的官启。装了一个原神心海指针包美化桌面,但是却在一些窗口失效了,害得我查问题查了挺久。有一天闲着没事删了家目录里的 Snap 目录,居然没法开机了,系统直接卡在启动日志。怎么都救不回来,Win11 也删了,只能网购启动盘重装。

换到 Arch 后学习了很多 Linux 的核心知识,知道了原来有个叫 Snap 的包管理器,这就是我之前遇到事情的罪魁祸首。Snap 会把应用装在封闭的容器里,连家目录都不能随便访问,强行删除就会破坏系统依赖,难怪当时一删就崩。这帮人真的是人类吗?居然会把那么危险的目录直接放家目录,无法挂载的情况下又不会自己创建。

Snap 和 Flatpak 一样都是容器化管理,但 Snap 是 Ubuntu 自己做的,带有浓厚的商业色彩。Ubuntu 总是爱那么特立独行,以前的大家都用上别的启动器了,Ubuntu 还在 UpStart 呢!非要搞一套自己的,不管社区主流怎么走。

Flatpak 的技术实现的很高超,还是开源、去中心化的,能搞个镜像站方便国内用户;Snap 的实现技术很粗糙,专有的、中心化的,后台商店还被 Canonical 牢牢把控,容器技术了个锤子,速度慢、BUG 多,用户体验差得远。

再后来学了一些新技术,我就知道 Ubuntu 的 GNOME 是改过的。现在再看 Ubuntu 的图形界面,我感受到的不是精致和新奇,而是一间破破烂烂的房子、翻译对不齐的那种。菜单项中英文混搭,按钮大小不一,感觉像是半成品就被推出来了。

我以前老强迫症了,给 Dash to Dock 提交过翻译补丁,把好几处不准确的翻译改成了通顺的中文。提交后要等好久才有人来看,大概是几天之后,才被一个乌克兰开发者注意到。补丁最后不了了之了,那个中文区的维护者说要按照他们的格式,可我寻思原版的翻译也不好,连基础用语都不统一。

GNOME 如果真那么好用,那么 Dash to Dock、Desktop Icon 这些插件就不会排在下载榜第一了。社区实现的插件总感觉质量参差不齐,内存泄漏的挺多,用着用着系统就卡了,一查发现某个插件占了几个 G 的内存,只能关掉重启。可是 Kubuntu 也没感觉到 KDE 的精髓在哪,依旧 Snap 那股 GTK 味。

我喜欢以前那个 Unity 的界面,它让我感觉到了新奇,左侧启动器、全局菜单、HUD 搜索,这些设计在当时真的很前卫。听蚊兄说有个印度小哥在维护 Unity 版本的,于是就去试了一下。体验感觉桌面系统很完整,很多细节都还原了,这才是我想要的 Ubuntu。但就是 BUG 太多了,经常崩溃闪退。

我在 Linux 上都不咋使用容器技术,这玩意给我的感觉总像是拖家带口在我电脑上拉了坨大的,占用空间大、启动慢。我基本上就是在 Arch 装个 Niri 平铺窗口管理器,转头就打游戏的那种人,简单直接,不搞那些花里胡哨的。因为包管理器太方便了,我装 Steam 都是用的 Pacman 装。

我感觉我讨厌 Ubuntu 的是那种态度——Canonical 总想教育用户什么,帮你做决定,选一大堆你不想要的。我感觉我也被渐渐影响了,总感觉我在使用途中继承了那种态度,变得爱帮别人做决定,比如说把一个来过文章的朋友添加进邮件提醒列表。

已经离开 Ubuntu 有一段时间了,现在用的是 macOS。这下知道我在 Ubuntu 上总感觉哪里缺了什么东西的那个东西在哪了,模仿 macOS 没模仿到精髓倒是。macOS 的流畅、统一、精致,Ubuntu 只学到了皮毛,内核里那股“我们替你做主”的味道,始终改不掉。