dist
10 篇-
系统模型
SOW 用配置文件保存仓库设置,用 SQLite 记录托管状态,用公共目录向客户端提供文件。 模型分别记录选中的软件包、已完成的构建,以及已发布的内容。 对象 Workspace(工作区) ├── Repository(仓库) │ ├── Pool:包对象 │ ├── Dist:成员关系与策略 │ ├── Desired(期望状态) │ ├── Built Generation(已构建快照) │ └── 保留的 Generation └── 发布目标 └── Repository + 存储后端 …
SOW 用配置文件保存仓库设置,用 SQLite 记录托管状态,用公共目录向客户端提供文件。 模型分别记录选中的软件包、已完成的构建,以及已发布的内容。 对象 Workspace(工作区) ├── Repository(仓库) │ ├── Pool:包对象 │ ├── Dist:成员关系与策略 │ ├── Desired(期望状态) │ ├── Built Generation(已构建快照) │ └── 保留的 Generation └── 发布目标 └── Repository + 存储后端 …
-
sow export
sow export rpm-leaf 将一个 Dist 的指定架构导出为独立 RPM 仓库。它把软件包复制到外部目录,并将元数据中的包路径改为本地 pool/... 路径。 语法 sow export rpm-leaf DIST ARCH DIR [--hardlink] [-C|--workdir DIR] [-r|--repo NAME] [--json] 参数 要求 DIST 已配置的规范 RPM Dist 名称 ARCH x86_64 或 aarch64 DIR 不存在或为空,且不与仓 …
sow export rpm-leaf 将一个 Dist 的指定架构导出为独立 RPM 仓库。它把软件包复制到外部目录,并将元数据中的包路径改为本地 pool/... 路径。 语法 sow export rpm-leaf DIST ARCH DIR [--hardlink] [-C|--workdir DIR] [-r|--repo NAME] [--json] 参数 要求 DIST 已配置的规范 RPM Dist 名称 ARCH x86_64 或 aarch64 DIR 不存在或为空,且不与仓 …
-
sow dist
sow dist 管理客户端使用的发行版集合。每个 Dist 只包含 RPM 或 DEB 中的一种格式。同一仓库内的 Dist 共用 pool/,在 dists/ 下各有独立索引。 语法 sow dist ls [-C DIR] [-r NAME] [--json] sow dist new NAME --format rpm|deb [-C DIR] [-r NAME] [-T DUR | -N] [--json] sow dist show NAME [-C DIR] [-r NAME] …
sow dist 管理客户端使用的发行版集合。每个 Dist 只包含 RPM 或 DEB 中的一种格式。同一仓库内的 Dist 共用 pool/,在 dists/ 下各有独立索引。 语法 sow dist ls [-C DIR] [-r NAME] [--json] sow dist new NAME --format rpm|deb [-C DIR] [-r NAME] [-T DUR | -N] [--json] sow dist show NAME [-C DIR] [-r NAME] …
-
核心概念
选择模式 需求 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 外 …
-
仓库布局
对外服务完整的 Managed 仓库目录:pool/ 加 dists/。 工作区配置与 .sow/ 状态应位于 Web 服务根目录之外。 Plain 目录 /srv/offline/ ├── example-1.0-1.x86_64.rpm ├── example_1.0-1_amd64.deb ├── repodata/ │ ├── <sha256>-primary.xml.gz │ ├── <sha256>-filelists.xml.gz │ ├── …
对外服务完整的 Managed 仓库目录:pool/ 加 dists/。 工作区配置与 .sow/ 状态应位于 Web 服务根目录之外。 Plain 目录 /srv/offline/ ├── example-1.0-1.x86_64.rpm ├── example_1.0-1_amd64.deb ├── repodata/ │ ├── <sha256>-primary.xml.gz │ ├── <sha256>-filelists.xml.gz │ ├── …
-
包池与元数据视图
Managed 仓库将每个包对象保存在 pool/ 中。Dist 和架构视图只包含引用这些包字节的索引。 <repo>/pool/ 包文件 <repo>/dists/<rpm-dist>/<arch>/repodata/ RPM 元数据 <repo>/dists/<deb-dist>/main/binary-*/ APT 元数据 存储范围是一个仓库。同一个包放入其他仓库或发布目标后,分别占用相应仓库或目标的命名空间。 RPM 视图 RPM Dist 为每个配置架构生成一个元数据目录: …
Managed 仓库将每个包对象保存在 pool/ 中。Dist 和架构视图只包含引用这些包字节的索引。 <repo>/pool/ 包文件 <repo>/dists/<rpm-dist>/<arch>/repodata/ RPM 元数据 <repo>/dists/<deb-dist>/main/binary-*/ APT 元数据 存储范围是一个仓库。同一个包放入其他仓库或发布目标后,分别占用相应仓库或目标的命名空间。 RPM 视图 RPM Dist 为每个配置架构生成一个元数据目录: …
-
第一个工作区
本例创建一个 Managed 仓库,包含两个具名软件包集合,称为 Dist: el9 存放 RPM,bookworm 存放 DEB。使用可写的空目录 /srv/sow,或换成其他路径。 初始化工作区 sow init /srv/sow cd /srv/sow init 创建: /srv/sow/ ├── sow.yml # 配置;schema: sow/v3 └── .sow/ # SOW 管理的私有状态 需要调整配置时,编辑 sow.yml。私有目录 .sow/ 由 SOW 管理。 重复执行 …
本例创建一个 Managed 仓库,包含两个具名软件包集合,称为 Dist: el9 存放 RPM,bookworm 存放 DEB。使用可写的空目录 /srv/sow,或换成其他路径。 初始化工作区 sow init /srv/sow cd /srv/sow init 创建: /srv/sow/ ├── sow.yml # 配置;schema: sow/v3 └── .sow/ # SOW 管理的私有状态 需要调整配置时,编辑 sow.yml。私有目录 .sow/ 由 SOW 管理。 重复执行 …
-
Managed 工作区
定期更新的仓库适合使用 Managed 模式。SOW 记录包成员关系、执行 Dist 策略、构建元数据, 并保留操作历史。 工作区、仓库与 Dist Workspace(工作区) └── Repository(仓库) └── Dist(软件包集合) └── Architecture view(架构视图) 术语 用途 工作区 保存 sow.yml、私有 .sow/ 状态和允许的架构族 仓库 拥有独立包池、Dist、SQLite 数据库、构建快照(Generation)和发布状态 Dist 按名称组 …
定期更新的仓库适合使用 Managed 模式。SOW 记录包成员关系、执行 Dist 策略、构建元数据, 并保留操作历史。 工作区、仓库与 Dist Workspace(工作区) └── Repository(仓库) └── Dist(软件包集合) └── Architecture view(架构视图) 术语 用途 工作区 保存 sow.yml、私有 .sow/ 状态和允许的架构族 仓库 拥有独立包池、Dist、SQLite 数据库、构建快照(Generation)和发布状态 Dist 按名称组 …
-
搭建 APT 仓库
本教程从零创建一个 Managed DEB 仓库。先安装 SOW、Python 3,并准备适合目标客户端的 DEB 文件。使用当前用户可创建、可写入的空目录 /srv/sow,或换成其他可写路径。 1. 创建工作区 mkdir -p /srv/sow cd /srv/sow sow init . sow repo new pigsty sow dist new trixie --format deb -r pigsty Dist 名称 trixie 对应客户端配置中的 Suites,可以按需要更 …
本教程从零创建一个 Managed DEB 仓库。先安装 SOW、Python 3,并准备适合目标客户端的 DEB 文件。使用当前用户可创建、可写入的空目录 /srv/sow,或换成其他可写路径。 1. 创建工作区 mkdir -p /srv/sow cd /srv/sow sow init . sow repo new pigsty sow dist new trixie --format deb -r pigsty Dist 名称 trixie 对应客户端配置中的 Suites,可以按需要更 …
-
搭建 YUM 仓库
本教程从零创建一个 Managed RPM 仓库。先安装 SOW、Python 3,并准备适合目标客户端的 RPM 文件。使用当前用户可创建、可写入的空目录 /srv/sow,或换成其他可写路径。 1. 创建工作区 mkdir -p /srv/sow cd /srv/sow sow init . sow repo new pigsty sow dist new el9 --format rpm -r pigsty el9 是这个 RPM 包集合的名称,可以按需要更改。它不改变软件包的操作系统兼容 …
本教程从零创建一个 Managed RPM 仓库。先安装 SOW、Python 3,并准备适合目标客户端的 RPM 文件。使用当前用户可创建、可写入的空目录 /srv/sow,或换成其他可写路径。 1. 创建工作区 mkdir -p /srv/sow cd /srv/sow sow init . sow repo new pigsty sow dist new el9 --format rpm -r pigsty el9 是这个 RPM 包集合的名称,可以按需要更改。它不改变软件包的操作系统兼容 …