plain
11 篇-
SOW v0.5.0
SOW 0.5.0 为已有 YUM 仓库增加发布时间参数,并修复 Managed 仓库的恢复、签名和包路径处理。 构建过程也减少了对未变化软件包的重复校验。 安装方式见下载 SOW。使用 0.3 或 0.4 Managed 工作区时,先迁移各个 Repository,再进行写操作。 升级 Managed 工作区 停止向工作区写入的命令。 备份完整工作区,包括 sow.yml、.sow/ 和所有 Repository 根目录。 安装 SOW 0.5.0。 逐个迁移、构建并检查 …
SOW 0.5.0 为已有 YUM 仓库增加发布时间参数,并修复 Managed 仓库的恢复、签名和包路径处理。 构建过程也减少了对未变化软件包的重复校验。 安装方式见下载 SOW。使用 0.3 或 0.4 Managed 工作区时,先迁移各个 Repository,再进行写操作。 升级 Managed 工作区 停止向工作区写入的命令。 备份完整工作区,包括 sow.yml、.sow/ 和所有 Repository 根目录。 安装 SOW 0.5.0。 逐个迁移、构建并检查 …
-
SOW v0.3.0
SOW 0.3.0 减少了重复包读取与数据库查询。Plain 生成只遍历一次包内容;Managed 构建缓存已解析的包数据,并批量提交新包池文件。本版还移除了已退役的运行时与发布代码。 Plain:每个软件包只读一次 默认不签名的 sow create 流程对每个 RPM 或 DEB 只做一次哈希与解析,--jobs 控制并行任务数。SOW 根据解析结果生成元数据,写入索引前再次检查软件包集合与文件属性是否变化。 Plain 构建中断后,从软件包目录重新运行即可。0.3 移除了 Plain 的操 …
SOW 0.3.0 减少了重复包读取与数据库查询。Plain 生成只遍历一次包内容;Managed 构建缓存已解析的包数据,并批量提交新包池文件。本版还移除了已退役的运行时与发布代码。 Plain:每个软件包只读一次 默认不签名的 sow create 流程对每个 RPM 或 DEB 只做一次哈希与解析,--jobs 控制并行任务数。SOW 根据解析结果生成元数据,写入索引前再次检查软件包集合与文件属性是否变化。 Plain 构建中断后,从软件包目录重新运行即可。0.3 移除了 Plain 的操 …
-
设计原则
SOW 分别管理包存储、仓库构建和发布。以下原则说明各类状态由谁保存,以及操作如何使用这些状态。 每类记录由一个对象管理 记录 管理范围 包体与包身份 Repository Desired 成员关系与 Built 状态 Repository Generation 与变更集 Repository 目标绑定与修订记录 Repository 与发布目标 发布尝试与检查点 Repository 与目标前缀 远端清单与删除记录 Repository 与目标前缀 每个 Repository 分别保存自己的包 …
SOW 分别管理包存储、仓库构建和发布。以下原则说明各类状态由谁保存,以及操作如何使用这些状态。 每类记录由一个对象管理 记录 管理范围 包体与包身份 Repository Desired 成员关系与 Built 状态 Repository Generation 与变更集 Repository 目标绑定与修订记录 Repository 与发布目标 发布尝试与检查点 Repository 与目标前缀 远端清单与删除记录 Repository 与目标前缀 每个 Repository 分别保存自己的包 …
-
v0.2 重置:用 Plain 与 Managed 取代万能控制面
2026-07-31,v0.1 源码基线封存后,SOW 开始了一次产品重置。 目标是构建一个小型仓库引擎,替代 Pigsty 日常软件包构建工作流。 重置保留了已有的完整性与恢复经验,同时移除了大部分控制面。 最终形成的分工沿用至今:Plain 重建调用者拥有的目录,Managed 管理仓库及其历史。 开发设计最初在 RPM 视图内使用 C2 硬链接,随后在 8 月 8 日发布 v0.2.0 前被替换。 部分归档计划曾把 C2 构建称为“v0.2.0”,但正式标签已经采用单一包池与纯元数据视图。 …
2026-07-31,v0.1 源码基线封存后,SOW 开始了一次产品重置。 目标是构建一个小型仓库引擎,替代 Pigsty 日常软件包构建工作流。 重置保留了已有的完整性与恢复经验,同时移除了大部分控制面。 最终形成的分工沿用至今:Plain 重建调用者拥有的目录,Managed 管理仓库及其历史。 开发设计最初在 RPM 视图内使用 C2 硬链接,随后在 8 月 8 日发布 v0.2.0 前被替换。 部分归档计划曾把 C2 构建称为“v0.2.0”,但正式标签已经采用单一包池与纯元数据视图。 …
-
核心概念
选择模式 需求 Plain Managed 为软件包目录生成索引 sow create DIR 用 sow add 导入软件包 保存配置与成员关系 目录内容就是状态 sow.yml 与私有 SQLite 数据库 组织软件包 一个平面目录,可同时包含 RPM 与 DEB 具名 Dist,每个 Dist 一种格式 生成架构视图 不支持 支持 过滤软件包、限制版本数 --pigsty 提供 Pigsty 约定 每个 Dist 单独配置 签名 RPM 软件包 支持 支持 签名仓库元数据 在 SOW 外 …
选择模式 需求 Plain Managed 为软件包目录生成索引 sow create DIR 用 sow add 导入软件包 保存配置与成员关系 目录内容就是状态 sow.yml 与私有 SQLite 数据库 组织软件包 一个平面目录,可同时包含 RPM 与 DEB 具名 Dist,每个 Dist 一种格式 生成架构视图 不支持 支持 过滤软件包、限制版本数 --pigsty 提供 Pigsty 约定 每个 Dist 单独配置 签名 RPM 软件包 支持 支持 签名仓库元数据 在 SOW 外 …
-
功能
SOW 用两种模式创建仓库索引。可以随时重建的包目录使用 Plain; 需要持续更新、策略、签名和发布的仓库使用 Managed。 功能对照 功能 Plain Managed RPM 与 DEB 索引 一个目录,可包含任一种或两种格式 一个仓库,分别使用不同 Dist 持久化成员与构建快照 — 支持 分架构视图 — 支持,包含架构无关包 包排除 --pigsty 使用固定清理规则 按 Dist 配置 版本数量限制 — 按 Dist 配置 元数据签名 — RPM 和 DEB RPM 包签名 …
SOW 用两种模式创建仓库索引。可以随时重建的包目录使用 Plain; 需要持续更新、策略、签名和发布的仓库使用 Managed。 功能对照 功能 Plain Managed RPM 与 DEB 索引 一个目录,可包含任一种或两种格式 一个仓库,分别使用不同 Dist 持久化成员与构建快照 — 支持 分架构视图 — 支持,包含架构无关包 包排除 --pigsty 使用固定清理规则 按 Dist 配置 版本数量限制 — 按 Dist 配置 元数据签名 — RPM 和 DEB RPM 包签名 …
-
快速上手
Plain 模式为一个软件包目录生成仓库,不需要工作区或配置文件。准备 SOW、用于预览的 Python 3,以及至少一个 RPM 或 DEB 文件。 准备目录 创建可写目录。将下例输入路径换成实际文件,只执行已有格式对应的复制命令: mkdir -p "$HOME/sow-quickstart" cp /path/to/example.rpm "$HOME/sow-quickstart/" cp /path/to/example.deb "$HOME/sow-quickstart/" 把包放在 …
Plain 模式为一个软件包目录生成仓库,不需要工作区或配置文件。准备 SOW、用于预览的 Python 3,以及至少一个 RPM 或 DEB 文件。 准备目录 创建可写目录。将下例输入路径换成实际文件,只执行已有格式对应的复制命令: mkdir -p "$HOME/sow-quickstart" cp /path/to/example.rpm "$HOME/sow-quickstart/" cp /path/to/example.deb "$HOME/sow-quickstart/" 把包放在 …
-
Plain 平面仓库
用 sow create 为一个 RPM 或 DEB 软件包目录生成索引。索引与包文件放在一起。 该命令不读取 sow.yml,也不创建状态数据库。 sow create /srv/offline 输入与输出 SOW 只扫描目录顶层以 .rpm 或 .deb 结尾的普通文件,不递归,也不跟随包文件符号链接。 包名、版本和架构来自包内信息。源码 RPM(src 和 nosrc)会被拒绝。 输入 生成文件 RPM repodata/repomd.xml 和 gzip 压缩的 …
用 sow create 为一个 RPM 或 DEB 软件包目录生成索引。索引与包文件放在一起。 该命令不读取 sow.yml,也不创建状态数据库。 sow create /srv/offline 输入与输出 SOW 只扫描目录顶层以 .rpm 或 .deb 结尾的普通文件,不递归,也不跟随包文件符号链接。 包名、版本和架构来自包内信息。源码 RPM(src 和 nosrc)会被拒绝。 输入 生成文件 RPM repodata/repomd.xml 和 gzip 压缩的 …
-
迁移已有 YUM 仓库
本指南适用于 RPM 与 repodata/ 放在同一层目录的平面仓库,例如此前用 createrepo_c 维护的仓库。它使用 Plain sow create,不创建 Managed 工作区。发布时间参数是 SOW 0.5.0 新增功能,请使用该版本或更新版本。 1. 准备工作副本 备份当前软件包与元数据,再准备独立工作副本用于迁移。计划重签的 RPM 使用独立复制,不使用硬链接。检查已安装的二进制: SOW="$(command -v sow)" "$SOW" version 确认版本为 …
本指南适用于 RPM 与 repodata/ 放在同一层目录的平面仓库,例如此前用 createrepo_c 维护的仓库。它使用 Plain sow create,不创建 Managed 工作区。发布时间参数是 SOW 0.5.0 新增功能,请使用该版本或更新版本。 1. 准备工作副本 备份当前软件包与元数据,再准备独立工作副本用于迁移。计划重签的 RPM 使用独立复制,不使用硬链接。检查已安装的二进制: SOW="$(command -v sow)" "$SOW" version 确认版本为 …
-
上手
SOW 为 RPM 与 DEB 软件包生成 YUM 与 APT 静态仓库。安装 SOW 后,按需要选择管理方式: Plain 模式: 执行 sow create DIR,为目录中的软件包生成索引。 Managed 模式: 创建工作区,按 Dist 组织软件包、限制版本数、签署元数据并发布更新。 安装 — 安装发布归档、Linux 软件包,或从源码构建。 快速上手 — 创建平面仓库,并用本机客户端访问。 第一个工作区 — 创建 RPM 与 DEB Dist,添加软件包并检查结果。 核心概念 — 理 …
SOW 为 RPM 与 DEB 软件包生成 YUM 与 APT 静态仓库。安装 SOW 后,按需要选择管理方式: Plain 模式: 执行 sow create DIR,为目录中的软件包生成索引。 Managed 模式: 创建工作区,按 Dist 组织软件包、限制版本数、签署元数据并发布更新。 安装 — 安装发布归档、Linux 软件包,或从源码构建。 快速上手 — 创建平面仓库,并用本机客户端访问。 第一个工作区 — 创建 RPM 与 DEB Dist,添加软件包并检查结果。 核心概念 — 理 …
-
sow create
sow create 在软件包所在目录生成 RPM 与 DEB 索引。需要平面仓库时使用此命令,无需创建 Managed 工作区。DIR 默认为当前目录。 语法 sow create [DIR] [-j N] [--metadata-timestamp SECONDS] [--pigsty] [-S KEY [--overwrite]] [-T DUR | -N] [--json] 说明 create 读取 DIR 顶层的普通文件,按发现的内容渲染对应索引:有 RPM 就生成 …
sow create 在软件包所在目录生成 RPM 与 DEB 索引。需要平面仓库时使用此命令,无需创建 Managed 工作区。DIR 默认为当前目录。 语法 sow create [DIR] [-j N] [--metadata-timestamp SECONDS] [--pigsty] [-S KEY [--overwrite]] [-T DUR | -N] [--json] 说明 create 读取 DIR 顶层的普通文件,按发现的内容渲染对应索引:有 RPM 就生成 …