为什么我从 NixOS 转换到 openSUSE

NixOS 是一个很好用的 Linux 系统,有一个很棒的系统哲学,文本固化安装, 通过一个配置文件就可以完全创建或者还原一个系统。任何情况下你都可以在系统启动界面内 选择你想回退使用的版本,没有任何副作用。从这里可以看出 NixOS 是一个“好用”的系统, 你甚至可以使用 Git 来完全控制你的配置文件,事实上大多数人都是这么选择的。

但是令人遗憾的是,它的学习成本超高,它与传统 Linux 使用方式完全不同, 所有操作几乎都要在“配置文件”中进行。而为了 NixOS 为了实现使用“配置文件”完成整体的设置, 它几乎“改写”了底层的文件系统。 NixOS 没有动态链接库,也就是说,你使用正常方式安装软件, 你只能通过 NixOS 的打包方式安装,而难点就在这里,打包一个软件的难度相当高, 你需要阅读大量的文档才能管中窥豹。当然,你也需要大量的实践来测试。

就像最近我发现一些问题:

  • 最近 IntelliJ IDEA 终于修复了在 Linux输入框无法对齐 这个常达 10 年的问题, 没错,你没看错!10 年!10 年啊!所以我想赶快使用修复过后的 JRE, 但是无论我怎么设置我都无法正常的设置 JRE

  • 而且我遇到了新的问题,我在去年双十一的时候换了一个电脑,从 intel CPU 换成了 AMD CPU 的电脑。 而且我不想重装系统,所以我直接迁移了硬盘,这导致了一些硬件问题。修复到能开机后我就没在处理,但是最近问题越来越严重, x11 模式下无法正常使用外接显示屏,输入法卡顿, IntelliJ IDEA 卡顿等问题。oy-git 上传的文件

  • NixOS 的回滚也不是完全回滚,它只会回滚“系统级”,而你用户级的并不能正确的处理,经常会出现软件版本回滚回去了, 但是配置文件并没有,有些情况下效果甚至不如 btrfs 的回滚。

  • 而且 NixOS 需要大量的存储空间,我在切换之前所有包大概 400G 左右,简直离谱(包含 180 次更新), 而 openSUSE 占了大概 40G 左右。

这些“问题”共同导致我切换到 openSUSE,不过我依旧承认 NixOS 是一个工作情况良好的系统, 它依旧是一个值得敬佩的系统,就像我从 archlinux 切换到 NixOS 一样,他们都是值得敬佩的。

当然,这并不是说 openSUSE 就十全十美。我现在发现最大的问题就是 openSUSE 官方软件库真的很少, 除非开源的项目。包括常用的 JetBrains 系列开源社区版软件包都没有, 也包括我现在正在使用的编写软件 logseq 也是。这都令人恼火,毕竟我需要从其他位置,例如 snap 中安装。 我需要分出心智来管理其他渠道。不过这比 NixOS 要强的多, NixOS 官方源和社区源没有的软件, 我是真不知道怎么打包,过于艰难。

感慨的是,从 NixOS 这个文本驱动的系统变成命令驱动的系统真的是轻松了很多 ( NixOS 没有清晰的进度条和更新进度条,只有一个 nvd 来构建后对比。)。 终于知道自己要更新什么东西,而且还有美妙的进度条了,多么令人安心!