nix是一个基于函数式语言的声明式包管理器,几年前我把macOS上面的包管理器从brew切换到nix,实现了 Configuration-as-Code -的方式来管理环境。有了nix这样一个可编程层,基本上所有的配置都可以提交到git仓库:任何时候都可以稳定复现日常使用的环境,这极大地降低了维护个人开发环境的心理负担,尝试不同的技术生态也变得更加容易。x3

+的方式来管理环境。有了nix这样一个可编程层,基本上所有的配置都可以提交到git仓库:任何时候都可以稳定复现日常使用的环境,这极大地降低了维护个人开发环境的心理负担,尝试不同的技术生态也变得更加容易。

NixOS是以nix为基础实现的Linux发现版。得益于nix的设计原则,NixOS也具有Declarative、Reproducible、 Reliable的优点。除此之外,NixOS可以高度定制化,基本上可以积木式地搭建自己独特的Linux系统,这一点是使用ArchLinux、Debian、RedHat系等发行版时无法想象的。尤其对于Server端环境,从引导程序、内核到系统服务,完全可按需定制成最小的Linux系统。同时,系统整体上的配置是声明式风格,将系统维护融合进自动化管理流程也容易得多。因此,我逐步将所有的Linux Server全部切换到NixOS。

@@ -183,7 +183,7 @@

基础配置

将如下内容填写到 configuration.nix 配置模块中:

-
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{ pkgs, username, ... }:
 
 {
@@ -351,11 +351,11 @@ 

NixOS iso-image 系统启动流程 -----+++++ @@ -420,11 +420,11 @@

NixOS iso-image 系统启动流程

-----+++++