第五回,渐觉Arch无力持,转投NixOS获新生

1为什么无力持Arch

软件是最新的

由于滚动更新,所有的软件都是处于最新的状态,这看起来没什么问题。但是,对于我来说,我使用的软件,除非有重大更新,否则我不喜欢进行更新,这样让软件停在一个稳定的版本,且功能正常。并且,有时候进行更新会导致软件的不稳定已经一些新的潜在问题。

packages软件包问题

之前遇到的问题:

某一个包的pgp密钥过期,导致整个arch都无法更新,需要手动导入,比较麻烦。

之前使用某一个Arch发行版,更新内核的包出现异常,导致btrfs快照功能炸裂,当我回滚的时候,直接系统都进不去了。

通常来说,我使用EndeavourOS这个Arch的发行版,我在安装的时候选择加密我的硬盘。但在之前的某次滚动更新中,似乎引导出了点问题,导致我默认进入EndeavourOS的时候,输入硬盘加密的密码,提示无法找到那个硬盘。我从bios的启动选项进行启动才能避免这个问题。

一但遇到这样的问题,就必须花更多的时间与精力去解决,而且收获很少。这对于我来说是不能接受的。

AUR包鱼龙混杂

AUR包非常多,包括许多过时的与无人维护的。并且这些包只能在Arch Linux上使用。虽然我平时用的AUR包不是过时的,但是我不是很喜欢低质的包,而且也遇见过AUR包用着用着就被标记为过时了。

个人的混沌

当我从别人那里了解软件,我总是直接安装到我的Arch上。久而久之,我的Arch就像就像一个黑盒一样。我之前在KDE上,要从x11转向wayland的时候,为了解决屏幕共享问题,在寻找攻略的时候,无法辨别哪些是有用的,有些是没用的,于是,一堆奇怪的东西被安装到我的系统上。后面,我想进行测试哪些包是有用的,结果发现根本测试不了,包太多了,加之后面有些包的名字也忘记了。后面就也没有去处理,就放在那边。

后面,我在使用某个软件的时候,由于混沌的环境触发了一个奇怪的bug。我花了大量时间去尝试解决,但是没有用。最后我不得不重装了一个一模一样的新系统,直接在上面测试,却并没有发现之前的bug,有点小丑了🤡。

网络问题

我的Arch的网络有时候会毫无征兆的爆炸,遇见过几十次了。

并且有时候系统更新中,某几个包的下载速度会奇慢无比,导致更新缓慢,甚至无法更新。

2.Arch现状

我还是对Arch很有感情的,毕竟,Arch是我第一个接触的,作为我的主力系统的Linux,是我linux的入门系统。我享受之前无忧无虑拿着yay与paru乱勾aur包的快乐时光。我的许多学习都是在Arch上面进行的。我的朋友兼老师,在考量了ubuntu,fedora等一众linux后,推荐给我Arch,并教授了我许多arch的知识与生态。我非常感激他们,也感激Arch。

现在,Arch对我来说就像是一位故人,我把它从电脑上的固态硬盘转移到移动的固态硬盘,想它的时候可以随时登上来看看,NixOS爆炸的时候也可以用它先顶着。

3.为什么选择NixOS

自己没事找事

NixOS是有高门槛的。投入的时间与精力更多,值不值得,投入与收获什么的,对于我来说,都是自己骗自己的借口,但自己已经是斯德哥尔摩晚期了,就是想搞NixOS。又因为gentoo编译时间有点久,总是觉得自己的小小笔记本无法承受。

可复现性

安装系统变成了你配不配(文件)的问题,非常酷炫。后面在服务器上将大有作为。

所有系统配置相关的文件都是只读,数据与配置是分开的,不怕下太多东西搞乱环境。而且通过flake可以锁定应用版本,不用担心Arch那种频繁的更新带来的隐患。

4.目前我的NixOS现状

目前是配置好了我的NixOS。并将自己的主力系统转到NixOS。

我的配置在我的git 仓库里面。

https://github.com/antipeth/antipethos

尝试了一些软件的方案,也遇到了NixOS的一些奇怪bug。

在某次我用flake构建我的系统时,flake应该自动生成flake.lock。

但是它生成了两个lock文件,一个叫做flake.lock,另一个叫做flack.lock。

我还遇到了貌似是模块冲突的问题,使得系统无法构建,导致某些应用无法正常安装,但我手动清除所有模块重新构建时,却又恢复正常。

其他内容正在研究中…