教程

端到端实操:从一堆包文件开始,做出客户端可以直接安装的已签名软件仓库。

这里的每篇教程都是一次完整的旅程:从零开始,按顺序执行每条命令,最后得到一个真实 dnfapt 客户端可以消费的仓库。命令可以直接复制执行,输出块全部来自真实运行记录。

如果还没装 SOW,先看安装快速上手 ——那两篇能在五分钟内做出一个可用的平面仓库。下面的教程从那里接手,搭出生产形态。

先看哪篇

你的处境从这里开始
你要为 EL8 / EL9 / EL10 分发 RPM搭建 YUM 仓库
你要为 Debian 或 Ubuntu 分发 DEB搭建 APT 仓库
仓库已经有了,但客户端抱怨没签名仓库签名
树已经建好,但外面访问不到对外服务
你手上有 createrepo_c 定时任务或 reprepro 数据库迁移

YUM 与 APT 两篇共用同一个工作区,按顺序读最顺:APT 篇会往 YUM 篇建好的仓库里再加一个 Dist。 单独看任何一篇也可以,每篇都写明了自己的前置条件。

本板块约定

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

每篇教程结尾都有验证步骤。验证不过就别往下走——下一步默认上一步已经产出了对应状态。 sow check 是说真话的那道闸:退出码 0 表示整棵树完整、可以直接拷贝,退出码 5 表示不行。


搭建 YUM 仓库

建一个托管 RPM 仓库:分架构视图、噪声过滤,以及可用的 dnf 客户端配置。

搭建 APT 仓库

建一个托管 DEB 仓库:Debian 风格包池、by-hash 索引,以及 deb822 与传统两套客户端配置。

仓库签名

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

对外服务

用 Nginx 通过 HTTP 发布仓库、本地临时预览,以及在不丢去重的前提下拷到隔离主机。

从 createrepo_c / reprepro 迁移

就地接管已有仓库,或把 reprepro 归档搬进工作区,附真实的逐项差异对照。

最后修改:2026-08-08: init commit (fe725aa)