我从 Arch Linux 迁移走并不代表这个系统有什么致命缺陷。事实上,它依然是很不错的 KISS 滚动发行版,值得一试。

是的。当你在阅读这篇博文的时候,我已经顺利的将日用 Linux 系统自 Arch Linux 迁移到 NixOS 了。

原因

或许你会好奇,我为什么要拥抱 NixOS?简单来说,是下面这些理由:

不会滚挂的滚动发行版

在 Arch Linux 里,如果不想让频繁滚动的更新破坏一天的好情绪,你或许会采用以下办法:

  • 延迟更新。在新更新出来之前,先去社群看看翻车更新日志,确认本次更新不会影响到自己;
  • 使用文件系统层面的快照功能。例如 btrfs,使得即使是不小心踩坑,也可以快速回滚到上一个可用的版本。

然而,这些操作本质上是不鲁棒的,也不够时间经济型。你一定不喜欢每次更新前,都要去社群里做一次阅读理解题的体验。你希望的是永远不要踩坑,或者是即使踩坑,也能先迅速回滚到上一个可用的状态,并在后续的时间里慢慢调试问题,这样的高可用滚动发行版。

简单来说,于我而言,我希望拥有这样的滚动发行版:

  • 系统永远不会滚挂。即使挂了,也能迅速恢复到能用的状态;
  • 自信的更新。让尝鲜低成本,甚至接近于没有成本。

而 NixOS 的主打亮点:Reliable,完美解决了以上问题:

Nix ensures that installing or upgrading one package cannot break other packages. It allows you to roll back to previous versions, and ensures that no package is in an inconsistent state during an upgrade.

这是我决定举家(当然,是 Linux 世界的家 :))迁移到 Nix OS 的主要原因。

可复现的安装体验

初看之下,NixOS 的“先声明,后安装”非常不新手友好。对最开始的我而言,亦是如此。

然而,在我进一步深入研究之后,发现这样的设计有着非同凡响的优点:低时间成本的可复现

传统的操作系统(比如说 Windows)在安装完毕之后的环境配置异常繁琐,使得对多数人而言,重装的时间成本非常高。试想,你的生产力工具、重要资产乃至最爱的番剧都深度耦合在你的系统里,你要如何下定决心去推翻重来?即使是拥有这个决心,却也难以在日益繁忙的现实生活中找到施行的时光。

而 NixOS 的配置型安装设计,让几乎所有的环境状态都位于一个配置文件夹内。想要重装或是迁移?没问题。只需要将配置文件拷贝出来,格式化硬盘,启动到 Live 环境,让安装程序 Nix 读取你的配置文件,即可重装出一个和之前近乎一模一样的系统环境

可以说,NixOS 免去了如下几个传统发行版的痛点:

  • 重装费时间。各种环境配置非常费时,使得重装成本过高;
  • 系统配置不透明。不用再担心重装会破坏些什么。

不用再在干净或是环境配置里幸福二选一了。成年人的选择是:

我全都要

相当丰富的生态

一个没有生态的操作系统,是难以走出虚拟机尝鲜环境的。不过,截止到目前,NixOS 已经拥有 80,000 多个官方软件包了。作为对比,Arch Linux 拥有 13,688 个官方软件包。

可以说,NixOS 已经拥有较为丰富的 Linux 生态环境,适合用于各种一般用途。比如说开发,以及 Steam Play

你应该尝试 NixOS 吗

不论实际用途的轮子都是脱离实际的。在三周的 NixOS 配置经验后,我推荐这样的人使用它:

  • 拥有强大的自我解决问题能力的。这个系统还相对小众,很多轮子还需要根据自己的情况来造;
  • 爱尝鲜,但又苦于尝鲜背后的风险的;
  • 想要近乎一劳永逸的系统环境配置的;
  • 系统洁癖症,但又担心清理成本过高的。

在之后的博文里,我会进一步介绍 NixOS 的周边内容。可以期待 :)