功能

SOW 的工作原理与设计取舍:两条运行路径、包池投影、成员策略、签名、事务与审计。

本板块讲机制。上手指南告诉你敲哪些命令,教程带你走完整场景;这里回答的是下一个问题 —— 磁盘上到底发生了什么,以及为什么这样设计

每页都先给出它要保护的不变式,再讲实现该不变式的机制。如果你只想查语法,请直接看参考

哪一页回答哪个问题

问题页面
SOW 能做什么?与 createrepo_creprepro 相比如何?能力总览
sow create 究竟写了什么?又拒绝碰什么?Plain 平面仓库
工作区、仓库、Dist 是什么关系?SOW 如何找到它们?Managed 工作区
同一份包字节为什么会同时出现在三个路径上?包池与架构视图
我的包为什么返回 excludedlimited?成员策略
哪把钥匙签什么?换钥匙会发生什么?签名模型
add 执行到一半机器掉电会怎样?事务与恢复
如何证明当前这棵树可以安全发货?可观测与审计

能力总览

SOW 在两条运行路径、两种包格式、签名与平台上的完整覆盖面,以及与 createrepo_c、reprepro 的对标结论。

Plain 平面仓库

sow create 如何把一个装满包的目录变成平面仓库:扫描、staging、原子替换、确定性输出,以及 Pigsty 兼容操作。

Managed 工作区

工作区 → 仓库 → Dist 三层模型、固定磁盘布局、sow.yml 如何驱动一切,以及发现与选择规则。

包池与架构视图

一份字节、一个属主、多个视图:硬链接投影如何让 YUM 元数据 href 对 reposync 安全、noarch 为何进入每个视图、以及包池为什么必须同文件系统。

成员策略

exclude 与 limit 如何决定哪些包留在 Dist 里:规则字段、glob 匹配、版本排序,以及放宽策略为什么永远不会复活已移出的成员。

签名模型

两条彼此独立的信任链、三种密钥引用形态、进程内签名与外部 rpm 签名的分工,以及轮换密钥时仓库会发生什么。

事务与恢复

三类操作日志、两级锁模型、固定的提交顺序,以及写命令被中途杀掉时会发生什么。

可观测与审计

一条命令回答一个问题:status 看便宜状态、check 做完整证明、changes 给交付计划、log 查操作账本,以及代际保留窗口如何工作。

最后修改:2026-08-08: init commit (fe725aa)