离线安装
Pigsty 默认从互联网上游 安装 所需软件包,但有些环境与互联网隔离。 为了解决这个问题,Pigsty 支持使用 离线软件包 进行离线安装。 您可以将其视作 Linux- 原生版本的 Docker 镜像。
概览
离线软件包 打包了所有需要的 RPM/DEB 软件包及其依赖;它是常规 安装 后的本地 APT / YUM 仓库的快照。
在 严肃的生产环境部署 中,我们 强烈推荐 您使用离线安装包进行安装。 它可以确保后续所有新节点的软件版本与现有环境保持一致, 并且可以避免上游变动导致的在线安装失败(相当常见!) 确保您能独立自主运行它至地老天荒。
- 可以简单方便的在互联网隔离的环境中交付实施。
- 一次性预下载所有软件包,可以有效加速安装过程。
- 无需担心上游依赖项的变动导致依赖错漏/安装失败。
- 如果有多个节点,那么所有软件包只需要下载一次,节省带宽资源。
- 可以通过本地仓库确保所有节点的软件版本一致,实行统一版本管理
- 离线安装包针对 特定的操作系统小版本制作,通常不能跨版本使用
- 仅为制作时刻的快照,可能不包含最新的更新和操作系统安全补丁。
v4.5.0公开离线包约为 1.6~2.0 GB(压缩后);在线安装按需下载,更节省空间。
离线软件包
当前公开稳定版 v4.5.0 提供 14 个离线包,覆盖七个操作系统基线与 x86_64、aarch64 两种架构。以下为该版本发布时的验证基线;选择时应同时匹配 Pigsty 版本、系统小版本和 CPU 架构。
| Linux 发行版 | 系统代码 | 基线小版本 | x86_64 | aarch64 |
|---|---|---|---|---|
| Rocky Linux 9 | el9 | 9.8 | 下载(1.95 GB) | 下载(1.83 GB) |
| Rocky Linux 10 | el10 | 10.2 | 下载(1.91 GB) | 下载(1.79 GB) |
| Debian 12 | d12 | 12.15 | 下载(1.74 GB) | 下载(1.59 GB) |
| Debian 13 | d13 | 13.6 | 下载(1.87 GB) | 下载(1.72 GB) |
| Ubuntu 22.04 | u22 | 22.04.5 | 下载(1.97 GB) | 下载(1.84 GB) |
| Ubuntu 24.04 | u24 | 24.04.4 | 下载(1.76 GB) | 下载(1.64 GB) |
| Ubuntu 26.04 | u26 | 26.04.0 | 下载(1.88 GB) | 下载(1.77 GB) |
发布页面还提供源码包、checksums 和对应的 .asc GPG 签名,验证方法见 GPG 签名。旧版离线包可从 历史发布页面 获取。
以下 SHA-256 来自 GitHub 发布资产元数据(核验于 2026-10-13):
将上述内容保存为 SHA256SUMS 后,在下载目录中、重命名文件前运行 sha256sum --ignore-missing -c SHA256SUMS。发布页中的 checksums 文件使用 MD5,格式与上面的 SHA-256 列表不同。
使用离线软件包
离线安装的步骤:
- 下载与目标系统匹配的 Pigsty 离线软件包,将其放到
/var/tmp/pkg.tgz - 下载与离线包版本一致的 Pigsty 源码包,解压并进入目录(假设解压到家目录:
cd ~/pigsty) ./bootstrap -p /var/tmp/pkg.tgz,它将解压软件包并配置使用本地仓库(并从中离线安装ansible)./configure -g -c rich,您可以直接使用配置好离线安装的模板rich,或者自行配置- 照常运行
./deploy.yml,从本地仓库安装核心链路所需软件;其他可选模块仍需执行各自的剧本
如果出现 “No package nginx available” 等错误,先核对离线包版本、系统与架构,并检查 /www/pigsty/repo_complete 和仓库内容。当前开发源码的 bootstrap 在解包失败或缺少完成标记时会清理不完整输出并报错;已有有效仓库则直接复用。需要更换已有仓库时,请先保留旧仓库再重新解包。
如果您想要在自己的配置中,使用已经解包配置好的离线软件包,请修改并确保以下配置项:
repo_enabled:将此参数打开,设置为true,则会构建本地软件源(在大部份配置中被显式关闭)node_repo_modules:将此参数设置为local,则环境中所有节点都从本地软件仓库安装- 在大部份模板中,此参数被显式配置为:
node,infra,pgsql,即直接从这些上游软件仓库安装。 - 将其设置为
local,则会使用本地软件仓库安装所有软件包,速度最快,没有其他仓库的变数干扰。 - 如果你想同时使用本地软件仓库和上游软件仓库,可以将其设置为
local,node,infra,pgsql
- 在大部份模板中,此参数被显式配置为:
第一个参数如果打开,Pigsty 会创建 本地软件仓库,第二个参数如果包含 local,则环境中的所有节点会使用这个本地软件仓库。
如果只包含 local,那么它会成为所有节点的唯一软件源,如果你还想要从其他上游软件仓库继续安装其他软件包,可以将其他仓库模块名称也添加进去,例如 local,node,infra,pgsql。
混合安装模式
如果您的环境有互联网访问,那么有一种混合方法可以融合离线安装与在线安装的优点。 您可以使用离线软件包作为基础,并在线补足不匹配的增量软件包。
在同一 Linux 大版本与架构内,如果离线包缺少当前系统需要的依赖,可在具有互联网访问的构建节点上执行 make repo-build 补充软件包,再重新制作离线包并验证安装。
这种方式依然依赖上游仓库;只有完成下载、重建元数据和安装验证后的制品,才能用于隔离环境。
制作离线软件包
如果您选择的操作系统不在默认列表中,您可以使用内置的 cache.yml 剧本制作自己的离线软件包:
找到一台运行完全相同操作系统版本,且可以访问互联网的节点
使用
rich配置模板执行 在线安装(./configure -c rich),并确认目标 Infra 节点的/www/pigsty本地仓库已经生成;若尚未生成,可先对该节点执行./infra.yml -t repo选择一个已有本地仓库的 Infra 节点,制作并取回离线包。以下示例输出到
/var/tmp/pigsty-dist/:从管理节点的
/var/tmp/pigsty-dist/<version>/取出pigsty-pkg-<version>.<os>.<arch>.tgz,传到离线环境的/var/tmp/pkg.tgz,再运行./bootstrap -p /var/tmp/pkg.tgz。
将 <infra-host> 替换为清单中的一个 Infra 主机。本地目录准备与校验步骤运行在 localhost,因此主机限制中需要保留它。管理节点与目标节点都需要 rsync;同平台节点生成相同文件名,每次只选择一个构建节点。
cache.yml 的主要参数如下,可使用额外变量覆盖:
| 参数 | 默认值 | 说明 |
|---|---|---|
cache_pkg_name | pigsty-pkg-${version}.${os}.${arch}.tgz | 离线包文件名模板 |
cache_pkg_dir | dist/${version} | 管理节点上的输出目录 |
cache_tmp_dir | /var/tmp | 开发版本新增;目标节点生成归档的临时目录,覆盖时需先创建。v4.5.0 固定使用 /tmp |
cache_repo | pigsty | 从目标节点打包的本地仓库;多个仓库用逗号分隔 |
输出目录同时包含 MD5 格式的 checksums 校验文件。源码发布包需另外准备,cache.yml 不会自动从工作树制作源码归档。
我们也提供 付费服务,按指定 Linux 基线制作并验证离线软件包,参考价格为 ¥200,具体范围与报价请联系确认。
Bootstrap
Pigsty 依赖 ansible 执行剧本,这个脚本负责用各种方式来确保 ansible 正确安装。
通常在两种情况下,你需要运行这个脚本:
- 你不是通过 安装脚本 来安装 Pigsty 的,而是通过下载,
git clone源码包的方式安装的,因此没有安装 ansible。 - 你准备通过离线软件包来安装 Pigsty,需要使用这个脚本来从离线软件包中安装 ansible。
当前开发源码的 bootstrap 默认检测 /var/tmp/pkg.tgz;仅当默认路径不存在时才回退到旧路径 /tmp/pkg.tgz。v4.5.0 发布版默认仍是 /tmp/pkg.tgz,因此跨版本操作时建议始终显式指定:
如果存在则解压使用它,然后从里面安装 ansible。 如果离线包不存在,它会尝试从互联网安装 ansible。如果还是不行,那你就要自己想办法了!
引导程序默认会 移走 现有软件源配置,以确保只有所需的仓库被启用。
您可以在 /etc/yum.repos.d/backup (EL) 或 /etc/apt/backup (Debian / Ubuntu) 中找回它们。
如果您想在 bootstrap 过程中保留现有软件源配置,请使用 -k|--keep 参数。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)