[{"data":1,"prerenderedAt":321},["ShallowReactive",2],{"blog-post-/posts/nixos-introduction":3},{"id":4,"title":5,"alt":6,"body":7,"categories":306,"date":308,"description":309,"extension":310,"image":6,"meta":311,"navigation":313,"path":314,"published":313,"seo":315,"stem":316,"tags":317,"__hash__":320},"content/posts/nixos-introduction/index.md","NixOS 种草指南",null,{"type":8,"value":9,"toc":288},"minimark",[10,14,34,37,42,45,67,70,92,96,101,104,123,126,142,146,149,163,166,174,178,181,192,195,198,202,205,216,219,233,236,239,242,250,253,263,266],[11,12,13],"p",{},"如果你和我一样，经历过这些场景：",[15,16,17,21,24,31],"ul",{},[18,19,20],"li",{},"新机器重装后，环境要手动配半天。",[18,22,23],{},"某次升级后系统抽风，不知道是哪个包或配置导致的。",[18,25,26,27],{},"同一份 dotfiles 在不同机器上总会有“玄学偏差” ",[28,29,30],"del",{},"（在我的机器上能跑啊.jpg）",[18,32,33],{},"系统维护一段时间之后，完全忘了自己做过哪些更改，成为“黑箱”系统。",[11,35,36],{},"那么快来试试 NixOS 吧（",[38,39,41],"h2",{"id":40},"why-nixos","Why NixOS?",[11,43,44],{},"NixOS 最核心的魅力，不是“包多”，而是这三件事：",[46,47,48,55,61],"ol",{},[18,49,50,54],{},[51,52,53],"strong",{},"声明式配置","：你描述“我想要什么”，系统去构建“如何做到”。",[18,56,57,60],{},[51,58,59],{},"可复现","：同一份配置，在不同机器上尽量得到一致结果。",[18,62,63,66],{},[51,64,65],{},"可回滚","：每次系统切换都保留 generation，翻车可以一键回退。",[11,68,69],{},"在日常使用里，这些特性会直接转化为：",[15,71,72,75,87],{},[18,73,74],{},"换机器时迁移成本非常低。",[18,76,77,78,82,83,86],{},"可以通过 ",[79,80,81],"code",{},"generations"," 或是版本管理工具（如 ",[79,84,85],{},"git","）回退系统状态。",[18,88,89],{},[28,90,91],{},"妈妈再也不用担心我的系统爆炸啦。",[38,93,95],{"id":94},"nixos-的几个关键概念","NixOS 的几个关键概念",[97,98,100],"h3",{"id":99},"_1-flakes把依赖和入口规范化","1. Flakes：把依赖和入口规范化",[11,102,103],{},"Flakes 的作用很简单：",[15,105,106,109],{},[18,107,108],{},"统一定义输入依赖（inputs）和输出（outputs）。",[18,110,111,112,115,116],{},"配合 ",[79,113,114],{},"flake.lock"," 锁定版本，提升复现性 ",[28,117,118,119,122],{},"（虽然说对于我这种每天跑若干次 ",[79,120,121],{},"sudo nix flake update"," 的人来说没什么意义吧）",[11,124,125],{},"借助 Flakes 还能实现一些神奇的功能，包括但不限于：",[15,127,128,131],{},[18,129,130],{},"同时使用多个版本的 Nixpkgs 中的包。",[18,132,133,134,137,138,141],{},"在项目目录中通过 ",[79,135,136],{},"flake.nix"," 定义当前项目的开发环境，并通过 ",[79,139,140],{},"direnv"," 自动激活。",[97,143,145],{"id":144},"_2-nixos-module-home-manager系统层和用户层分治","2. NixOS Module + Home Manager：系统层和用户层分治",[11,147,148],{},"我的仓库里就是这种分层思路：",[15,150,151,157],{},[18,152,153,156],{},[79,154,155],{},"modules/nixos/*","：系统级配置（服务、内核、网络、桌面会话等）。",[18,158,159,162],{},[79,160,161],{},"modules/home/*","：用户级配置（shell、编辑器、应用、主题、开发工具等）。",[11,164,165],{},"这个拆分的好处是：",[15,167,168,171],{},[18,169,170],{},"系统策略和个人习惯解耦，便于同时管理日用配置和服务器配置。",[18,172,173],{},"目录结构清晰，后续维护更轻松。",[97,175,177],{"id":176},"_3-generation-与回滚","3. generation 与回滚",[11,179,180],{},"NixOS 的每次切换都会生成一份可启动快照（generation）。",[11,182,183,184,187,188,191],{},"可以直接在 ",[79,185,186],{},"grub"," 中选择启动项，也可以用 ",[79,189,190],{},"nixos-rebuild switch --rollback"," 回滚到上一次。",[11,193,194],{},"如果改完配置，发现系统炸了，可以直接 rollback 回去。",[11,196,197],{},"相比文件系统快照，generation 更轻量。",[38,199,201],{"id":200},"nixos-的优缺点","NixOS 的优缺点",[97,203,204],{"id":204},"优点",[15,206,207,210,213],{},[18,208,209],{},"配置可追踪、可回滚、可复现。",[18,211,212],{},"新机迁移速度快，多机器部署简单。",[18,214,215],{},"对“折腾党”极其友好，试错成本低。",[97,217,218],{"id":218},"缺点",[15,220,221,227,230],{},[18,222,223,224],{},"学习曲线陡，尤其是 Nix 语言表达方式 ",[28,225,226],{},"（Nix 的报错信息真的不是给人看的）",[18,228,229],{},"某些小众场景仍需要额外适配。",[18,231,232],{},"相比 Arch Linux 的 AUR，Nixpkgs 的包生态还是不够丰富，偶尔还是需要自己打包。",[11,234,235],{},"如果你愿意接受前期投入，长期回报非常可观。",[38,237,238],{"id":238},"结语",[11,240,241],{},"NixOS 不一定适合所有人，但它非常适合：",[15,243,244,247],{},[18,245,246],{},"希望完完全全掌控自己系统的人。",[18,248,249],{},"经常重装、换机、跨设备同步环境的人。",[11,251,252],{},"我的配置仓库会持续更新，欢迎参考或提 issue：",[15,254,255],{},[18,256,257],{},[258,259,260],"a",{"href":260,"rel":261},"https://github.com/RhenCloud/NixOS-Config",[262],"nofollow",[38,264,265],{"id":265},"参考链接",[15,267,268,275,282],{},[18,269,270,271],{},"NixOS Wiki: ",[258,272,273],{"href":273,"rel":274},"https://wiki.nixos.org",[262],[18,276,277,278],{},"NixOS & Flakes Book: ",[258,279,280],{"href":280,"rel":281},"https://nixos-and-flakes.thiscute.world/",[262],[18,283,284,285],{},"我的配置仓库：",[258,286,260],{"href":260,"rel":287},[262],{"title":289,"searchDepth":290,"depth":291,"links":292},"",2,4,[293,294,300,304,305],{"id":40,"depth":290,"text":41},{"id":94,"depth":290,"text":95,"children":295},[296,298,299],{"id":99,"depth":297,"text":100},3,{"id":144,"depth":297,"text":145},{"id":176,"depth":297,"text":177},{"id":200,"depth":290,"text":201,"children":301},[302,303],{"id":204,"depth":297,"text":204},{"id":218,"depth":297,"text":218},{"id":238,"depth":290,"text":238},{"id":265,"depth":290,"text":265},[307],"Technology","2026-04-21T00:00:00.000Z","结合我的真实经历，聊聊为什么 NixOS 值得尝试。","md",{"updatedDate":312},"2026-04-21",true,"/posts/nixos-introduction",{"title":5,"description":309},"posts/nixos-introduction/index",[318,319],"Linux","NixOS","zlNrS0RbrfNYmkTMvkLjtD9WdeNVajptyogQ_G6fuSs",1776704555728]