apt
6 篇-
为什么 SOW 每个仓库只保留一棵包体树
这项决策起草于 2026-08-05,随 2026-08-08 的 SOW v0.2.0 发布。SOW 0.5.0 仍使用这一布局: 每个仓库保存一棵包体树,各发行版视图引用同一棵树。 决策 每个 Repository 的公共目录如下: <repository>/ pool/ # 包体 dists/ <dist>/ <architecture>/ # RPM 元数据 上图展示 RPM 视图。APT 索引位于 dists/<dist>/main/binary-<architecture>/, …
这项决策起草于 2026-08-05,随 2026-08-08 的 SOW v0.2.0 发布。SOW 0.5.0 仍使用这一布局: 每个仓库保存一棵包体树,各发行版视图引用同一棵树。 决策 每个 Repository 的公共目录如下: <repository>/ pool/ # 包体 dists/ <dist>/ <architecture>/ # RPM 元数据 上图展示 RPM 视图。APT 索引位于 dists/<dist>/main/binary-<architecture>/, …
-
平台与集成
SOW 在 Linux 和 macOS 上构建 RPM、DEB 仓库文件。工作区使用受支持的本地文件系统, 再为客户端配置 HTTP 或存储访问。 平台 操作系统 amd64 arm64 发布格式 Linux 是 是 归档、RPM、DEB macOS 是 是 归档 Windows 否 否 — 发布二进制使用 CGO_ENABLED=0,不需要语言运行时。源码构建要求 Go 1.27.1 或更新版本。 归档包含 README、更新日志、Apache-2.0 许可证与第三方许可声明; Linux 软 …
SOW 在 Linux 和 macOS 上构建 RPM、DEB 仓库文件。工作区使用受支持的本地文件系统, 再为客户端配置 HTTP 或存储访问。 平台 操作系统 amd64 arm64 发布格式 Linux 是 是 归档、RPM、DEB macOS 是 是 归档 Windows 否 否 — 发布二进制使用 CGO_ENABLED=0,不需要语言运行时。源码构建要求 Go 1.27.1 或更新版本。 归档包含 README、更新日志、Apache-2.0 许可证与第三方许可声明; Linux 软 …
-
签名模型
配置元数据签名,让客户端验证仓库索引。需要客户端验证 RPM 文件内嵌签名时, 另行配置 RPM 包签名。 签名对象 配置 签名内容 输出 客户端设置 signing.rpm.metadata RPM 索引清单 repodata/repomd.xml.asc DNF repo_gpgcheck=1 signing.deb.metadata APT 发布清单 InRelease、Release.gpg APT Signed-By signing.rpm.packages RPM 包 内嵌 …
配置元数据签名,让客户端验证仓库索引。需要客户端验证 RPM 文件内嵌签名时, 另行配置 RPM 包签名。 签名对象 配置 签名内容 输出 客户端设置 signing.rpm.metadata RPM 索引清单 repodata/repomd.xml.asc DNF repo_gpgcheck=1 signing.deb.metadata APT 发布清单 InRelease、Release.gpg APT Signed-By signing.rpm.packages RPM 包 内嵌 …
-
仓库签名
仓库签名分为元数据签名与 RPM 软件包签名两层,需要分别配置: 路径 产物 客户端开关 RPM 元数据 repodata/repomd.xml.asc repo_gpgcheck=1 APT 元数据 InRelease 与 Release.gpg Signed-By RPM 包体 RPM 内嵌签名 gpgcheck=1 APT 通过签名的 Release 文件验证包哈希,因此 DEB 不需要单独的包签名。先配置元数据签名;客户端要求 gpgcheck=1 时,再配置 RPM 软件包签名。 本教 …
仓库签名分为元数据签名与 RPM 软件包签名两层,需要分别配置: 路径 产物 客户端开关 RPM 元数据 repodata/repomd.xml.asc repo_gpgcheck=1 APT 元数据 InRelease 与 Release.gpg Signed-By RPM 包体 RPM 内嵌签名 gpgcheck=1 APT 通过签名的 Release 文件验证包哈希,因此 DEB 不需要单独的包签名。先配置元数据签名;客户端要求 gpgcheck=1 时,再配置 RPM 软件包签名。 本教 …
-
教程
本节介绍仓库创建、签名、发布与更新。尚未安装 SOW 时,先看安装。 迁移现有 YUM 仓库 替换平面 RPM 仓库的元数据生成工具,保留发布时间、签名与客户端缓存兼容性。 搭建 YUM 仓库 创建 RPM 架构视图,过滤软件包,设置版本上限并配置 DNF。 搭建 APT 仓库 创建 DEB 包池与 by-hash 索引,并配置 APT 客户端。 仓库签名 签署元数据与 RPM 软件包,再配置客户端验签。 对外服务 发布到 filesystem 目标,并用 Nginx 提供服务。 构建 …
本节介绍仓库创建、签名、发布与更新。尚未安装 SOW 时,先看安装。 迁移现有 YUM 仓库 替换平面 RPM 仓库的元数据生成工具,保留发布时间、签名与客户端缓存兼容性。 搭建 YUM 仓库 创建 RPM 架构视图,过滤软件包,设置版本上限并配置 DNF。 搭建 APT 仓库 创建 DEB 包池与 by-hash 索引,并配置 APT 客户端。 仓库签名 签署元数据与 RPM 软件包,再配置客户端验签。 对外服务 发布到 filesystem 目标,并用 Nginx 提供服务。 构建 …
-
搭建 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,可以按需要更 …