跳转到主要内容

教程

端到端实操:从一组软件包文件开始,构建客户端可直接使用的已签名软件仓库。

这里的教程都从全新工作区开始。请按顺序执行命令,并按你的环境替换大写占位符与包路径。

如果还没装 SOW,先看安装快速上手。 下面的教程介绍 Managed 仓库路径。

托管 RPM 仓库:分架构视图、noarch 中性投影、debuginfo 过滤、版本数量上限,以及可用的 dnf 客户端配置。

托管 DEB 仓库:Debian 风格包池、by-hash 索引与 deb822 客户端配置。

生成专用 GPG 签名钥,为仓库元数据与 RPM 包签名,并配置客户端拒绝一切未签名内容。

用 Nginx 服务 Repository,并把已校验 Generation 发布到配置好的 filesystem target, 同时避免暴露工作区私有状态。

把 infra-pkg 已产出的双架构 RPM 与 DEB 组织成真实仓库,并演练本地安装、滚动更新、 Stable 晋升与月度快照。

先看哪篇

你的处境 从这里开始
你要向 dnf 客户端分发 RPM 搭建 YUM 仓库
你要为 Debian 或 Ubuntu 分发 DEB 搭建 APT 仓库
需要已签名元数据或已签名 RPM 包体 仓库签名
树已经建好,但外部无法访问 对外服务
想把现有双架构包池变成可维护的 Infra 仓库 演练构建 pigsty-infra 仓库

YUM 与 APT 两篇是彼此独立的全新 Workspace 路径。实际使用中,如果它们适合共用同一所有权 边界,一个 Workspace 的同一 Repository 可以同时容纳 RPM 与 DEB Dist。

本板块约定

Shell 代码块里的命令不带 $ 提示符,方便整块复制。输出单独成块放在命令下方,只有一行时用注释 标注。需要你自行替换的值一律写成 大写

每篇教程结尾都有验证步骤。sow check 返回 0,才证明所选 Repository 完整且与记录的 Generation 一致;非零结果不应作为交付物。

搭建 YUM 仓库

创建托管 RPM 仓库,配置成员策略,对外服务并接入 dnf。

搭建 APT 仓库

创建带 by-hash 索引的托管 DEB 仓库,并配置 APT 客户端。

仓库签名

签署 RPM 与 APT 元数据,可选签署 RPM 包体,并启用客户端验签。

服务与发布仓库

用 Nginx 服务公共 Repository,并把已校验 Generation 发布到 filesystem target。

演练构建 pigsty-infra 仓库

把既有的双架构 RPM 与 DEB 包池组织成 infra 仓库,完成本地安装验收、滚动更新、Stable 晋升与月度快照。