使用指南
更新与选择
理解全部更新、选择性更新、失败保留和取消行为。
全部更新
nix-pins update
没有名称或 --filter 时,处理全部配置中的 Pin。全部更新还会移除 Pins File 中已经不在配置里的 Pin 和 failure。
选择性更新
nix-pins update patchelf ripgrep
nix-pins update --filter '^python-'
nix-pins update patchelf --filter '^python-'
名称与正则匹配结果取并集。显式名称必须全部存在;仅提供正则却没有匹配项时会报错。选择性更新不修改范围之外的锁定条目,也不清理范围之外已经从配置删除的条目。
Source 与 Package 都不能单独作为选择对象。一个 Pin 的所有 Source 共同成功后,才会更新这个 Pin。
只读查看
nix-pins
nix-pins status
nix-pins status patchelf
未指定子命令时执行 status。它读取已有锁定结果和上次失败信息;当前 CLI 没有 status --refresh。
失败与取消
配置错误在执行 Checker 前使整次操作失败。单个 Pin 的运行失败不会阻止其他 Pin 更新:失败 Pin 保留原来的可用内容;首次锁定失败时只记录 failure,不创建带假哈希的 Pin 条目。
成功结果最终统一原子写入 Pins File。取消时不写入。不同进程不能同时写同一 Pins File;工具通过写锁拒绝并发写者。
交互式终端显示 Pin/Source/Package 进度,重定向和 CI 使用文本输出。显示完成表示计算成功,持久化发生在最终写入阶段。