能力总览
SOW 在两条运行路径、两种包格式、签名与平台上的完整覆盖面,以及与 createrepo_c、reprepro 的对标结论。
本板块讲机制。上手指南告诉你敲哪些命令,教程带你走完整场景;这里回答的是下一个问题 —— 磁盘上到底发生了什么,以及为什么这样设计。
每页都先给出它要保护的不变式,再讲实现该不变式的机制。如果你只想查语法,请直接看参考。
| 问题 | 页面 |
|---|---|
SOW 能做什么?与 createrepo_c、reprepro 相比如何? | 能力总览 |
sow create 究竟写了什么?又拒绝碰什么? | Plain 平面仓库 |
| 工作区、仓库、Dist 是什么关系?SOW 如何找到它们? | Managed 工作区 |
| 同一份包字节为什么会同时出现在三个路径上? | 包池与架构视图 |
我的包为什么返回 excluded 或 limited? | 成员策略 |
| 哪把钥匙签什么?换钥匙会发生什么? | 签名模型 |
add 执行到一半机器掉电会怎样? | 事务与恢复 |
| 如何证明当前这棵树可以安全发货? | 可观测与审计 |
SOW 在两条运行路径、两种包格式、签名与平台上的完整覆盖面,以及与 createrepo_c、reprepro 的对标结论。
sow create 如何把一个装满包的目录变成平面仓库:扫描、staging、原子替换、确定性输出,以及 Pigsty 兼容操作。
工作区 → 仓库 → Dist 三层模型、固定磁盘布局、sow.yml 如何驱动一切,以及发现与选择规则。
一份字节、一个属主、多个视图:硬链接投影如何让 YUM 元数据 href 对 reposync 安全、noarch 为何进入每个视图、以及包池为什么必须同文件系统。
exclude 与 limit 如何决定哪些包留在 Dist 里:规则字段、glob 匹配、版本排序,以及放宽策略为什么永远不会复活已移出的成员。
两条彼此独立的信任链、三种密钥引用形态、进程内签名与外部 rpm 签名的分工,以及轮换密钥时仓库会发生什么。
三类操作日志、两级锁模型、固定的提交顺序,以及写命令被中途杀掉时会发生什么。
一条命令回答一个问题:status 看便宜状态、check 做完整证明、changes 给交付计划、log 查操作账本,以及代际保留窗口如何工作。