跳转到主要内容

rpm

13 篇
  • 为什么 SOW 每个仓库只保留一棵包体树

    Vonng 发布于 设计归档 1269 字 3 分钟

    VonngDesignrepositorypoolrpmaptcompatibilitydecision

    为什么 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 export

    发布于 命令

    Commandclirpmdist

    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 不存在或为空,且不与仓 …

  • 平台与集成

    发布于 参考

    Referencerpmdebyumaptobject-storage

    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 软 …

  • 签名模型

    发布于 功能

    Featuresigningrpmapt

    配置元数据签名,让客户端验证仓库索引。需要客户端验证 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 包 内嵌 …

  • 演练构建 pigsty-infra 仓库

    发布于 教程

    Tutorialyumrpmmanagedpublish

    pgsty/infra-pkg 是 Pigsty Infra 软件包的上游构建源码。 本教程使用已构建的 x86-64 与 ARM64 RPM、DEB,创建包含滚动频道、稳定发布与月度快照的 infra 仓库。先安装 SOW、jq 与 Docker。安装示例使用 pg-exporter;请包含该包,以及客户端镜像中尚未安装的依赖。 1. 把包集中到 ~/repo 为本工作区使用新的 ~/repo 目录。从 infra-pkg 源码目录复制软件包到两个输入目录: mkdir -p …

    pgsty/infra-pkg 是 Pigsty Infra 软件包的上游构建源码。 本教程使用已构建的 x86-64 与 ARM64 RPM、DEB,创建包含滚动频道、稳定发布与月度快照的 infra 仓库。先安装 SOW、jq 与 Docker。安装示例使用 pg-exporter;请包含该包,以及客户端镜像中尚未安装的依赖。 1. 把包集中到 ~/repo 为本工作区使用新的 ~/repo 目录。从 infra-pkg 源码目录复制软件包到两个输入目录: mkdir -p …

  • 包池与元数据视图

    发布于 功能

    Featurepooldistrpmdeb

    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 为每个配置架构生成一个元数据目录: …

  • 包引用

    发布于 参考

    Referenceclirpmdeb

    rm、show 和 where 接受包引用,add 接受文件或目录路径。 先用 sow ls 查到包坐标或 SHA-256,再传给其他命令。 sow ls -r demo -d el9 sow show 'rpm:example-0:1.0-1.x86_64' -r demo 支持的形式 形式 语法 匹配对象 SHA-256 sha256:<64 位小写十六进制数字> 已存储的包字节 RPM 坐标 rpm:<name>-<epoch>:<version>-<release>.<arch> 包含 …

    rm、show 和 where 接受包引用,add 接受文件或目录路径。 先用 sow ls 查到包坐标或 SHA-256,再传给其他命令。 sow ls -r demo -d el9 sow show 'rpm:example-0:1.0-1.x86_64' -r demo 支持的形式 形式 语法 匹配对象 SHA-256 sha256:<64 位小写十六进制数字> 已存储的包字节 RPM 坐标 rpm:<name>-<epoch>:<version>-<release>.<arch> 包含 …

  • 快速上手

    发布于 上手

    Startplainrpmdebcli

    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 平面仓库

    发布于 功能

    Featureplainrpmdeb

    用 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 仓库

    发布于 教程

    Tutorialyumrpmmanageddist

    本教程从零创建一个 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 包集合的名称,可以按需要更改。它不改变软件包的操作系统兼容 …

  • 安装

    发布于 上手

    Startinstallrpmdeb

    SOW 是一个可执行文件,不依赖守护进程、数据库服务或语言运行时。发布归档支持 Linux 与 macOS 的 amd64、arm64 架构。Linux 另有 RPM 与 DEB 安装包。 在下载页选择适合本机的 SOW 0.5.0 制品。把制品与 SHA256SUMS 下载到独立的下载目录。 安装归档 以 Linux amd64 为例,先校验归档,再解压并安装: set -euo pipefail grep ' sow_0.5.0_linux_amd64.tar.gz$' SHA256SUMS …

    SOW 是一个可执行文件,不依赖守护进程、数据库服务或语言运行时。发布归档支持 Linux 与 macOS 的 amd64、arm64 架构。Linux 另有 RPM 与 DEB 安装包。 在下载页选择适合本机的 SOW 0.5.0 制品。把制品与 SHA256SUMS 下载到独立的下载目录。 安装归档 以 Linux amd64 为例,先校验归档,再解压并安装: set -euo pipefail grep ' sow_0.5.0_linux_amd64.tar.gz$' SHA256SUMS …

  • sow create

    发布于 命令

    Commandcliplainrpmdeb

    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 就生成 …

  • 下载 SOW

    发布于 SOW:Software Object Warehouse

    Downloadinstallrpmdebrelease

    可以用 apt install sow 或 dnf install sow 从 Pigsty infra 软件源安装 SOW,也可以使用 固定版本的 RPM / DEB 安装包、面向 Linux 与 macOS(amd64 与 arm64)的 tar.gz 归档, 或者从某个 Tag 的源码自行构建。固定路径使用 SOW 0.5.0,Pigsty 软件源属于滚动渠道。 不同目标平台的构建提供一致的命令接口;每个已发布制品 都在 SHA256SUMS 中列出 SHA-256 摘要。安装完成后执行 …

    可以用 apt install sow 或 dnf install sow 从 Pigsty infra 软件源安装 SOW,也可以使用 固定版本的 RPM / DEB 安装包、面向 Linux 与 macOS(amd64 与 arm64)的 tar.gz 归档, 或者从某个 Tag 的源码自行构建。固定路径使用 SOW 0.5.0,Pigsty 软件源属于滚动渠道。 不同目标平台的构建提供一致的命令接口;每个已发布制品 都在 SHA256SUMS 中列出 SHA-256 摘要。安装完成后执行 …