category

Nix

共 31 篇文章。
全部文章gamegolang客户端开发MinigameSaasrustPythonJavacgTypescriptengineCocosMmodatabase
nix

Nix 语言服务器与编辑器工具链:补全、格式化与静态检查

Nix 是动态类型、惰性求值的语言,写错一个属性名往往要等到求值才报错。语言服务器把补全、跳转、诊断搬进编辑器,格式化器统一风格,statix 与 deadnix 提前拦下反模式与死代码。本文对比 nil 与 nixd 的取舍、给出各编辑器的接入配置、讲清 nixd 的选项补全原理,并用 treefmt 与 pre-commit 把检查固化到 CI。

10 分钟阅读
Nix 工具链 编辑器
nix

Store 垃圾回收与存储优化:gc root、去重与瘦身

内容寻址意味着 store 从不覆盖旧路径,一次重建就多出一份闭包,磁盘很快被历代产物吃满。回收的唯一依据是 gc root,而不是「看起来没人用」。本文讲清 gc root 的六种来源、手动与自动回收参数、硬链接去重的原理与代价、占用分析方法、结构性瘦身手段,以及误删与存储损坏后的恢复路径。

10 分钟阅读
Nix NixOS 存储优化
nix

构建沙箱与可复现性:Nix 如何隔离构建过程

Nix 的构建沙箱不是可选装饰,而是「输入确定」得以成立的前提:它给构建脚本一个干净的挂载视图、清空的环境变量、独立的构建用户与默认断开的网络。本文拆开沙箱的三种模式与内部结构,讲清环境变量如何被清洗、网络隔离与固定输出例外、如何检测构建是否纯净,以及容器与 CI 里沙箱失效的原因与修法。

11 分钟阅读
Nix 沙箱 可复现构建
nix

disko 声明式磁盘分区:把分区表写成 Nix 表达式

分区、文件系统与挂载点通常只活在安装那一刻的几条命令里,换台机器就得凭记忆重来。disko 把 GPT 分区表、LUKS 加密、LVM、Btrfs 子卷与 ZFS 池写成一份 Nix 表达式,由它生成分区动作与 fileSystems 配置,安装、重建与虚拟机测试共用同一份定义。本文给出完整配置、执行模式、密钥注入与常见坑。

10 分钟阅读
Nix NixOS 基础设施即代码
nix

lazy-trees 与大规模仓库求值:只取所需的文件树

在 nixpkgs 这类四万文件级仓库上,每次改一行都要先下载整棵源码树,求值因此被网络与解包拖垮。惰性树(lazy-trees)把「取整棵树」改成「用到哪个文件才取哪个」,同时保持 narHash 与旧行为一致。本文讲清其机制、开启方式、与 flake 输入的交互、eval-cache 复用,以及大规模仓库的提速实践与常见坑。

10 分钟阅读
Nix Flakes 工程化