| name | update |
| description | Update flake inputs (nixpkgs, home-manager) and handle compatibility. Use when asked to update dependencies, upgrade, refresh flake lock, or bump nixpkgs. |
Update
流程
git status
nix flake metadata --json | jq '{nixpkgs, home-manager: .locks.nodes.home-manager.locked}'
nix flake update --flake /etc/nixos
git diff flake.lock
nix flake check
nixos-rebuild build --flake /etc/nixos#<machine>
sudo nixos-rebuild switch --flake /etc/nixos#<machine>
git add flake.lock
git commit -m "chore: update flake lock"
兼容性问题处理
| 症状 | 处理 |
|---|
attribute 'xxx' missing | 搜索 nixpkgs 替代品;更新引用 |
option 'xxx' renamed to 'yyy' | 按警告更新选项名 |
| 覆盖层失效 | 检查上游是否修复 → 移除/调整覆盖 |
| 弹性包解析断裂 | 用 modules/lib.nix 的 resolvePkg 替代手动 tryEval |
回滚
git checkout HEAD~1 -- flake.lock
sudo nixos-rebuild switch --flake /etc/nixos#<machine>
安全策略
更新时机:定期维护、需要新版本包功能、安全修复
不更新时机:系统刚稳定、正在做其他重构、nixpkgs-unstable 大面积 breaking change