文档 博客 下载安装 English GitHub

PostgreSQL 扩展包管理器

Postgres Install Genius

任意扩展,一行命令。 562 个已打包扩展,覆盖 PostgreSQL 14-18。

pig 不取代 apt / dnf —— 它驱动它们。 落地的是原生 RPM / DEB 包,由 Pigsty 构建维护。

$ pig install pg_duckdb -v 18
PIG // ONE LAYER ABOVE APT AND DNF pig install
APTdebDEBIAN · UBUNTU
NAME · VERSION · ARCH PIG RESOLVE · INSTALL
YUMrpmEL 8 · 9 · 10

CATALOG // 562 PACKAGED EXTENSIONS

postgisPG14-18vectorPG14-18timescaledbPG14-18pg_duckdbPG14-18
5 MB STATIC BINARYMAINTAINED BY PIGSTY

QUICK START

三条命令,装好一个扩展

从一台裸机,到 PostgreSQL 18 上跑起来的 pg_duckdb

curl -fsSL https://repo.pigsty.cc/pig | bash
pig repo set
pig install -y pg18 pg_duckdb vector

支持系统:EL 8 / 9 / 10 · Debian 12 / 13 · Ubuntu 22 / 24 / 26 · x86_64 与 aarch64 · PostgreSQL 14 - 18

为什么需要它

装个扩展,不该是一个项目

Postgres 的能力有很大一部分在扩展里,而扩展的分发一直是整个生态最粗糙的一环。

没有 pig 的时候

你得自己走完这些

  • 先搞清楚这个扩展在哪儿:PGDG?厂商自己的源?还是只有一个 GitHub tarball?
  • 手工对齐 PG 大版本、发行版版本与 CPU 架构,错一个就装不上
  • 没有现成包?装工具链、学 pgrx、从源码编译,编完还要自己管升级
  • 下一台机器、下一次 PG 大版本升级,整套再来一遍

用 pig 之后

这些交给它

  • pig repo set 一次写好自洽的 apt / dnf 配置:操作系统源 + PGDG + Pigsty,按地域选镜像
  • pig install pg_duckdb -v 18 自己解析名字、PG 版本、发行版与架构
  • 组合不在支持矩阵里,pig build 用官方同款规格现编一个出来
  • 落地的仍是原生 RPM / DEB:卸掉 pig,数据库和扩展照常工作

pig 并非必需品 —— Pigsty 仓库 用裸的 apt / dnf 一样能访问,它也永远不会成为数据库的运行时依赖。

它究竟做了什么

目录、仓库、构建,以及装完之后

pig 的四块能力,从「把扩展装上」一路铺到「把数据库管起来」。

01 · 扩展目录

562 个扩展,早就打好包了

不用猜包名,不用对版本

  • pig ext list duck 按名字、分类、PG 版本检索目录,pig ext info 看详情
  • 扩展名与包名都认:pig install vectorpgvector 等价
  • pig ext scan -v 18 扫出这台机器上装了什么、缺了什么
  • 目录随二进制一起分发,也可以 pig ext reload 单独刷新

扩展从「找得到、编得出」变成「装得上」

02 · 软件仓库

仓库是配出来的,不是拼出来的

一条命令写出一套自洽的 APT / YUM 配置

  • pig repo set 一次配好操作系统源、PGDG 与 Pigsty 三层仓库
  • 自动探测地域并挑可达的镜像,中国大陆走 repo.pigsty.cc
  • 按模块增删:pig repo add pgsql node infrapig repo status 随时查
  • 严格遵循 PGDG 打包规范,与你已有的仓库和平共处

仓库状态可查、可回退,不是一堆手写的 .repo 文件

03 · 源码构建

没有现成包,就现做一个

构建环境是一条命令,不是一页 wiki

  • pig build tool / rust 备齐工具链与 pgrx,不必自己考古依赖
  • pig build spec 拉的是 Pigsty 自己出包用的那套规格,构建可复现
  • 产出仍是规范的 RPM / DEB,可以直接进你自己的内网仓库

支持矩阵之外,仍然有一条确定的路

04 · 装完之后

一路管到时间点恢复

包管理器之外,还是一把顺手的本机工具

  • pig pg 封装 pg_ctl / psql 等本机原语;pig pt 把参数原样透传给 patronictl
  • pig pb 管 pgBackRest 备份,pig pitr 做保守的编排式恢复:先停 Patroni,恢复后不擅自拉起
  • pig inventory 无损编辑 pigsty.yml:注释、键序、锚点逐字节保留,非法 YAML 落不了盘
  • pig sty 把一台机器变成一套完整的 Pigsty PostgreSQL RDS

高危操作先给计划、再要确认,默认不替你做决定