第N次逃离到Linux:在特殊网络环境下的自救之道

缘起
从澳大利亚回国的时候,我把我用了两年的台式机拆开,扔掉带不走的组件(例如电源和机箱)放到了行李里面。只是,回国之后一直懒得把它装回去。最近终于算是有点空闲(和需求)把这台电脑装了回去。
硬件上没什么问题——当然如果你非要感叹这台带有Ryzen 5500和RTX 3060、后期还加配了32 GB内存的电脑,如今极有可能身价不菲的话,那确实也算一个「问题」。反倒是在操作系统上绕了点弯路。
这个带过来的电脑之前安装的是NixOS。我对它的评价是,如果你是真的要用它来写代码,那么NixOS是一个十分robust的操作系统。它通过配置文件和对这个配置文件的版本管理,来实现系统的一致性和设置可复现性,这一点我挺喜欢。只是考虑到后期我需要做视频频道「游麻地」,而且当时我们的第一期视频工程还被「押」在了剪映,而剪映并不支持Linux上运行(明明它是Electron程序,却没有做全平台跨端,实在讽刺),所以我直接将整个机器重装成了Windows 11。
麻烦也因此而来。首先是我个人的「审美洁癖」,即Windows的字体渲染实在是令人不敢恭维。虽然微软已经为Windows打了包括但不限于ClearType和微软雅黑等的补丁,但Windows上的字体渲染依然呈现一种「狗啃」一般的字体边缘。在高DPI甚至非RPG排列的屏幕上,ClearType这种在低DPI的LCD屏幕上的「补丁」显然已不再适合。而只要为同一台显示器连接安装有KDE Plasma的电脑,渲染出来的文字马上就会获得质的飞跃:清晰锐利,如同打印在纸本上。
更重要的问题是,微软逐渐开始在Windows上「作死」:最开始是Windows Updates强制自动更新、裁掉QA再让用户免费做QA,再后来是强行在系统里塞入Microsoft Copilot和Microsoft Edge等等用户根本用不上的功能。作为一个在买电脑里特意加钱上正版Windows系统的我来说,是实打实的如鲠在喉。
如果单纯只是这样,那其实也没有必要非得切换Linux(凑合过呗,还能离咋地.jpg)。社区里也有像Atlas OS这种为Windows「瘦身」(debloating)的工具,过去两年里我确实会在自己使用Windows期间额外加装这个工具。但是这次遇到了一些实打实的问题:Atlas OS的0.5.0版本的Playbook会令AppX组件和Microsoft Store出现问题,致使你无法正常安装一些通过AppX打包、或是通过Microsoft Store分发的软件。我的另一台Windows设备是ROG Ally X,华硕甚至将奥创中心(Armoury Crate)的更新和分发放到了Microsoft Store中,这就导致安装AtlasOS之后我根本没法儿再安装奥创中心。另外,1Password和Dia等软件都是通过这个格式分发的,自然也是装不了。
这个问题导致我在一天之内反反复复重装了六次系统。而且,Atlas OS的Playbook最后更新日期是去年,这个问题也发生在去年,甚至写这篇文章的现在,26H2更新包发布已有一段时间,而Atlas OS至今没有正式支持。这也在某种程度上证明Atlas OS这种方案在理论上并不能长期持续依赖。
所以,在剪映上结束上一轮工程之后,我开始着手将自己的电脑(再一次)重装成Linux。
NixOS很好,但……
我在之前提过,我从澳洲回国之前,为这台电脑安装的是NixOS。于我而言,配置文件式设置除了有传统的一些优点之外,你还可以直接地把配置文件扔给LLM帮忙解决;即使改坏了,直接重启一下然后选择上一版配置文件就又是一条好汉了。加上我之前重装Windows之前,已经将之前使用的NixOS配置备份过一轮,我觉得不应该会出现问题。
直到我发现,NixOS的Live CD花了接近两个小时才写完文件……
一开始我没有反应过来是怎么回事,而且我心想,反正只是慢不是完全动不了(虽然多数时候它确实表现得动不了),也没啥问题。直到后面我打开Live CD环境的网络面板——好家伙,安装程序一直在访问Nix包管理器,而且速度只有惊人的100KB/s上下!
进了系统之后,我甚至没有考虑第一时间将原先备份出来的配置文件恢复回去,因为原先的配置中没有安装任何代理软件,在内地这个特殊网络环境下,我很难说恢复原有配置得多长时间。后来我在单独安装代理软件时,发现NixOS的「everything in configuration」的逻辑既是好事、同时也挖了大坑。由于代理配置在Linux上可能有一万种配置位置,包括KDE Plasma的设置和~/.config/environment.d等目录都有对应的配置项目,而且不同应用所使用的设置也不一样。再配合NixOS的配置文件的逻辑(也有可能是我对配置文件不熟悉),导致每改一次配置文件就得干等几十分钟,总之就是吃了一个大瘪。
选择下一个发行版
在不太愉快而且最终失败的配置之后,我短暂回到了 Windows,打算寻找下一个发行版。我稍微梳理了一下各个发行版的专长和短板之后,我决定试试Bazzite。
Bazzite是一款将流畅运行Windows游戏作为目标的Linux发行版;同时,它具有「默认沙盒」的特性,通过内置改版RPM安装的二进制默认会进入沙盒环境中。但更重要的是,它的安装程序默认会携带显卡驱动安装包。虽然我这么多年使用Linux还暂时没遇到显卡驱动问题(也有可能我没有太多「开源软件洁癖」,直接点「允许闭源驱动」一把梭),但至少它能内置也能省下不少事。
(顺便提一嘴,虽然很不想这么说,但是感谢AI大浪潮逼着老黄为Nvidia显卡推出了开源驱动,这在某种程度上也省了不少事。)
对独显、游戏等场景做专门优化,对我而言也有一点额外的好处:我希望在Linux上使用DaVinci Resolve剪辑视频,对于独显的优化那自然是多多益善。社区还有一个专门的davincibox项目,让DaVinci Resolve在Bazzite上能够十分流畅地运行。(也有一些尚可接受的妥协……之后我会提到。)
说干就干,直接下载ISO,拷贝到已经安装好MultiOS-USB的优盘上,然后直接从优盘启动即可。说句实话,多数Linux发行版的安装已经不像多年以前「蛋糕要自己烤」这样麻烦,Live CD中已经内置了一个十分优雅而且简洁的安装向导。做好一些初始化设置之后,离线安装(离线是为了避免它又在没有额外设置的前提下访问包管理器镜像)就行。
即使是离线安装Bazzite,安装流程中也会卡在「软件安装」这个步骤很长时间。如果你也遇到了一样的情况,请坐和放宽,耐心等待安装完成。
进系统之后的第一件事就是配置代理,以及1Password等基础软件(没这玩意我连登帐户我都登不上去)。安装好之后,就可以让LLM来帮我代劳很多东西了。
面向LLM的Linux配置方案
作为一个「text in, text out」为底层逻辑的操作系统,Linux天生很适合让LLM来做很多设置工作。无论是什么指令,只要LLM可以读写终端输入,它就能帮你做大多数配置。也就是说,只要我把代理设置做好了(嘘……),我就可以请ChatGPT这类LLM来帮我解决绝大部分问题——多数时候你需要做的,只有输入一下sudo密码这一件事。
说来,我在很久之前就提到过,以后的电脑,有可能是一种「面向LLM」的。即,你只需要在电脑上输入要干嘛,然后LLM获得授权之后直接帮你改就万事大吉。这对于Linux这种操作系统而言可能是一种重大利好,毕竟,多数人对Linux敬而远之的重要原因,就是TUI实在是太晦涩了。
扯远了。总之,在整个设置过程中,LLM的确帮了不少的忙。例如,帮我将浏览器和1Password安装到沙盒之外——多数Linux中的沙盒实现都是完全禁止应用程序之间互相沟通的,这让1Password app和浏览器内的密码填充扩展之间通信成了问题。解决方案只有一种,那就是让它们脱离沙盒环境、独立安装在系统环境内。
由于Bazzite默认是一个沙盒式的操作系统,所以你必须依靠一些特殊手段,将浏览器和1Password app安装到沙盒以外,它们才能正常工作。好在这对于LLM来说是轻车熟路、信手拈来。
另外,内置的包管理器前端Bazzar似乎没办法搜索到DaVinci Resolve和它的兼容沙盒davincibox。没关系,这时候LLM会出手:给它一个指令,它就会自动帮你从零配置好davincibox,让DaVinci Resolve顺利地在Bazzite上启动。
当然,非要说让LLM代劳这些有什么缺点,可能「没办法亲自动手」这一点算一个。虽然听上去稍微有点「凡尔赛」或是有悖于「吃水不忘挖井人」的想法,但自己没有亲自动手也意味着一旦这个配置出现问题,大概率还是得请LLM来帮忙修,但毕竟现在的大模型还是得依靠云端大公司才能调用,要是LLM调用掉了链子那还是得出大问题。不过,鉴于我也并非完全没有Linux运维经验,加上我的目的是把这套setup设置到我可以正常使用的状态、而非出于兴趣去折腾,再加上Bazzite也算是一个对average user相对友好的操作系统,我目前倒也不会太担心这个事情。
一些小问题
主动选择niche的解决方案,自然得面对一些niche的问题。首先遇到的问题是,Linux上的DaVinci Resolve(免费版)对H.264和H.265的支持较弱,没办法在软件里直接预览。
ChatGPT给我推荐的方案是,将素材转换为DNxHR HQX格式。格式转换不是问题,问题是,DNxHR HQX的体积实在是太大了。我现有的新工程的素材在H.265下的体积大概是20 GB左右,但在DNxHR HQX格式下,占用空间直接干到了500 GB。好在——我在十年前升级内存的时候同时升级了固态硬盘,所以我的电脑有2 TB大容量固态可供使用,至少剪辑一期节目问题不大。唯一的问题是,转换后的文件似乎没办法和原素材形成代理,不过我觉得这应该是换个封装就能解决的问题,之后我会再研究一下。
另外一个很重要的问题是,国服《最终幻想XIV》没法启动:中国区代理方盛趣游戏在它的启动器里大量使用IE和32位COM等组件,这导致它在Linux上无法正常使用。社区多数玩家会推荐在Linux上使用第三方的启动器,但毕竟因为各种各样的原因,导致它经常和「外挂」有关。
我把国服FF14启动器安装包下载回来,尝试让ChatGPT试试能不能解决这个问题。它花了大概40分钟,最终真的成功把它启动。当我在Linux上看到国服启动器的登录对话框,再看到ChatGPT对这个问题的诊断和修复,一时之间有点语塞:看着Windows给开发者「擦屁股」致使催生出的这种用二十年前的组件组装出来的奇怪「产物」,很难说这到底是好事还是坏事。
结语
在写这篇流水帐的过程中,我看到一篇报道称,Steam中Linux用户占比很大程度上取决于简体中文用户的数量:当某月的简中用户提升,那么Linux占比就会下降;反之亦然。
虽然直接下「简中用户不爱用Linux」的结论非常武断——我这里有个很直接的反例,例如不知道为什么Linux下的Steam程序不会跟随Steam或者系统设置的语言,只会fallback到英语;我猜测这可能是致使统计数据中Linux用户普遍不使用简体中文的缘故——但这个判断但其中确实有一定道理。
最重要的一点是,中国和美国的游戏玩家的画像并不一致:中国平均水平玩家更多使用电脑游玩游戏,致使更多技术水平一般的用户更愿意使用更友好的Windows而非Linux;美国或其他国家的一般水平游戏玩家更倾向于购买游戏主机:更便宜,更开箱即用,大部分情况下也无需纠结Windows还是Linux;真正「硬核」玩家才会使用PC游玩游戏,对他们而言Linux运维并不成问题,在 Linux 上玩游戏就成了很自然的选择。
倒也不是在说「中国玩家很low」或是「外国玩家真有钱」这种论断,只是在说,客观而言的现阶段,无论在什么地区,Linux依然还停留在「小众」的层面。好在,事情已经开始在发生变化。目前的Linux设置,已经要比十年前纯TUI那样要对普通用户友好很多了。至少,一个普通的用户只需要了解计算机基本原理、并稍微学习如何修改引导启动设置,就能独自完成Linux的安装。
更大的问题还是在于一些阻碍。除了之前提到过的设置代理问题,真正的「阻碍」其实还是在人的内心。当外部的限制开始逐渐渗透、内化到每个人的内心,另一种真正的「可能性」在现今尤为珍贵。Linux也许就是这样的「另一种可能性」。
题图来自Unsplash+