pig ext 使用 pig ext 子命令管理 PostgreSQL 扩展
pig ext 命令是一个用于管理 PostgreSQL 扩展的全能工具。它允许用户搜索、安装、移除、更新和管理 PostgreSQL 扩展,甚至支持内核包的管理。
pig ext - Manage PostgreSQL Extensions
pig repo add -ru # add all repo and update cache (brute but effective)
pig ext add pg18 # install optional postgresql 18 package
pig ext list duck # search extension in catalog
pig ext scan -v 18 # scan installed extension for pg 18
pig ext add pg_duckdb # install certain postgresql extension
Examples:
pig ext list [ query] # list & search extension
pig ext info [ ext...] # get information of a specific extension
pig ext status [ -v] # show installed extension and pg status
pig ext add [ ext...] # install extension for current pg version
pig ext rm [ ext...] # remove extension for current pg version
pig ext update [ ext...] # update extension to the latest version
pig ext import [ ext...] # download extension to local repo
pig ext link [ ext...] # link postgres installation to path
pig ext reload # reload the latest extension catalog data 快速入门 在安装 PostgreSQL 扩展前,你需要先添加 pig repo add :
pig repo add pgdg pigsty -u # 温和方式添加 pgdg 和 pigsty 仓库
pig repo set # 粗暴方式移除并添加所有所需仓库 然后你可以搜索并安装 PostgreSQL 扩展:
pig ext install pg_duckdb
pig ext install pg_partman
pig ext install pg_cron
pig ext install pg_repack
pig ext install pg_stat_statements
pig ext install pg_stat_kcache 可用扩展及其名称请查阅 扩展列表 。
使用说明:
未指定 PostgreSQL 版本时,工具会尝试从 PATH 中的 pg_config 自动检测当前活动的 PostgreSQL 安装。 PostgreSQL 可通过主版本号(-v)或 pg_config 路径(-p)指定。若指定 -v,pig 会使用该版本 PGDG 内核包的默认路径。EL 发行版为 /usr/pgsql-$v/bin/pg_config, DEB 发行版为 /usr/lib/postgresql/$v/bin/pg_config 等。 若指定 -p,则直接用该路径定位 PostgreSQL。 扩展管理器会根据操作系统自动适配不同的包格式:RHEL/CentOS/Rocky Linux/AlmaLinux 使用 RPM 包 Debian/Ubuntu 使用 DEB 包 某些扩展可能有依赖项,安装时会自动解决。 谨慎使用 -y 参数,它会自动确认所有提示。 Pigsty 假定你已安装官方 PGDG 内核包,如未安装,可用如下命令:
pig ext install pg18 # 安装 PostgreSQL 18 内核(除 devel 包) ext list 列出(或搜索)扩展目录中的可用扩展。
pig ext list # 列出所有扩展
pig ext list duck # 搜索包含 "duck" 的扩展
pig ext list -v 18 # 按 PG 版本筛选
pig ext ls olap # 列出 olap 类别扩展
pig ext ls gis -v 16 # 列出 PG 16 的 GIS 类扩展
pig ext ls rag # 列出 RAG 类别扩展 分类筛选通过查询参数直接指定分类名实现,支持的分类包括:time, gis, rag, fts, olap, feat, lang, type, func, util, admin, stat, sec, fdw, sim, etl。
选项:
-v|--version:按 PG 版本筛选--pkg:显示包名而非扩展名,仅列出主导扩展Status 列说明:
installed:扩展已安装(绿色)available:扩展可用但未安装(黄色)not avail:扩展在当前系统不可用(红色)默认扩展目录定义在 cli/ext/assets/extension.csv 。
可用 pig ext reload 命令更新到最新扩展目录,数据将下载到 ~/.pig/extension.csv;在线最新版目录同步发布于 pigsty.io/ext/data/extension.csv 。
ext info 显示指定扩展的详细信息。
pig ext info postgis # 显示 PostGIS 详细信息
pig ext info timescaledb # 显示 TimescaleDB 信息
pig ext info vector postgis # 显示多个扩展信息 ext avail 显示扩展的可用性矩阵,展示扩展在不同操作系统、架构和 PostgreSQL 版本上的可用情况。
pig ext avail # 显示当前系统上所有包的可用性
pig ext avail timescaledb # 显示 timescaledb 的可用性矩阵
pig ext avail postgis pg_duckdb # 显示多个扩展的可用性
pig ext av pgvector # 显示 pgvector 的可用性
pig ext matrix citus # avail 命令的别名 可用性矩阵会显示扩展在各个操作系统(EL8/9/10, Debian 12/13, Ubuntu 22/24/26)、架构(x86_64/aarch64)和 PostgreSQL 版本(14-18)上的可用情况。
ext status 显示当前 PostgreSQL 实例已安装扩展的状态。
pig ext status # 显示已安装扩展
pig ext status -c # 包含 contrib 扩展
pig ext status -v 16 # 显示 PG 16 已安装扩展 选项:
-c|--contrib:结果中包含 contrib 扩展ext scan 扫描当前 PostgreSQL 实例已安装的扩展。
pig ext scan [ -v version] 该命令会扫描 postgres 扩展目录,查找所有实际已安装的扩展。
ext add 安装一个或多个 PostgreSQL 扩展。pig ext add 的同级别名包括 pig ext install、pig ext ins 与 pig ext a。顶层 pig install 是另一个原生包管理器包装命令,也支持 PostgreSQL 与扩展包 alias 翻译。
pig ext add pg_duckdb # 安装 pg_duckdb
pig ext add pg_duckdb -v 18 # 为 PG 18 安装
pig ext add pg_duckdb -y # 自动确认安装
pig ext add vector postgis # 安装多个扩展
pig ext add postgis --plan # 预览安装计划,不执行
# 使用别名
pig install pg_duckdb
pig install pg_duckdb -v 18 -y
# 安装 PostgreSQL 内核
pig ext install pgsql # 安装最新版 postgresql 内核
pig ext a pg18 # 安装 postgresql 18 内核包
pig ext ins pg16 # 安装 postgresql 16 内核包
pig ext install pg15-core # 安装 postgresql 15 核心包
pig ext install pg14-main -y # 安装 pg 14 + 常用扩展(vector, repack, wal2json) 选项:
-v|--version:指定 PG 大版本-y|--yes:自动确认安装--plan:预览安装计划,不执行包管理器命令ext rm 移除一个或多个 PostgreSQL 扩展。
pig ext rm pg_duckdb # 移除 pg_duckdb
pig ext rm pg_duckdb -v 18 # 移除 PG 18 版本
pig ext rm pgvector -y # 自动确认移除
pig ext rm pgvector --plan # 预览移除计划,不执行 选项:
-v|--version:指定 PG 大版本-y|--yes:自动确认移除--plan:预览移除计划,不执行包管理器命令ext update 将指定的已安装扩展更新到最新版。出于安全考虑,无参数 pig ext update 不会更新所有扩展,而是 no-op;必须显式写出要更新的目标。
pig ext update # no-op:必须显式指定目标
pig ext update pg_duckdb # 更新特定扩展
pig ext update postgis timescaledb # 更新多个扩展
pig ext update pg_duckdb -y # 自动确认更新
pig ext update pg_duckdb -m # 选择内置中国区域软件源 选项:
-v|--version:指定 PG 大版本-y|--yes:自动确认更新-m|--mirror:优先使用 pigsty.cc 镜像作为更新来源ext import 下载扩展包到本地仓库,便于离线安装。
pig ext import postgis # 导入 PostGIS 包
pig ext import timescaledb pg_cron # 导入多个扩展包
pig ext import pg16 # 导入 PostgreSQL 16 包
pig ext import pgsql-common # 导入常用工具包
pig ext import -d /www/pigsty postgis # 指定路径导入 选项:
-d|--repo:指定仓库目录(默认:/www/pigsty)ext link 将指定 PG 版本链接到系统 PATH。
pig ext link 18 # 链接 PG 18 到 PATH
pig ext link pg17 # pg 前缀会被剥离,链接 PG 17
pig ext link 16 # 链接 PG 16 到 /usr/pgsql
pig ext link /usr/pgsql-16 # 从指定路径链接到 /usr/pgsql
pig ext link polar # 链接 PolarDB / PolarPG 安装
pig ext link /usr/polar-17 # 从指定 PolarDB 路径链接
pig ext link null # 取消当前 PostgreSQL 链接
pig ext link none # null / none / nil / nop / no 均可取消链接 该命令会创建 /usr/pgsql 软链接,并写入 /etc/profile.d/pgsql.sh。
ext reload 刷新扩展元数据。
更新后的文件会放置于 ~/.pig/extension.csv 中。
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)
缺少必要信息
内容错误或已过时
操作步骤没有生效
内容难以理解
修改反馈