Skip to content

Commit 9ce4e03

Browse files
committed
update pig 1.5 docs batch 2
1 parent 54c9190 commit 9ce4e03

18 files changed

Lines changed: 396 additions & 232 deletions

File tree

content/docs/about/sponsor.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ Pigsty 是由 [**奇绩创坛**](https://www.miracleplus.com/en/) (原 YC 中
3737

3838
感谢我们的赞助者 Vercel,为 Pigsty 网站提供了赞助与网站托管基础设施。
3939

40-
[![Vercel OSS Program](https://vercel.com/oss/program-badge.svg)](https://vercel.com/oss)
40+
[![Vercel OSS Program](/img/icon/vercel.svg)](https://vercel.com/oss)
4141

4242

4343
感谢我们的赞助者 Jet Brains,为 Pigsty 提供了 JetBrains Open Source License 计划的支持。
4444

45-
[![JetBrains logo.](https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg)](https://jb.gg/OpenSource)
45+
[![JetBrains logo.](/img/icon/jetbrains.svg)](https://jb.gg/OpenSource)

content/docs/pig/_index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module: [PIG]
88

99
—— **Postgres Install Genius,PostgreSQL 生态中缺失的扩展包管理器**
1010

11-
PIG 包管理器是一个专门用于安装、管理、构建 PostgreSQL 及其扩展的命令行工具,使用 Go 开发,开箱即用,简单易用,小巧玲珑(4MB)。
11+
PIG 包管理器是一个专门用于安装、管理、构建 PostgreSQL 及其扩展的命令行工具,使用 Go 开发,开箱即用,简单易用,小巧玲珑(约 5MB)。
1212
PIG 包管理器并非重新发明的土鳖轮子,而是 **依托** (PiggyBack)现有 Linux 发行版包管理器 (`apt`/`dnf`)的一个高级抽象层。
1313
它屏蔽了不同操作系统,不同芯片架构,以及不同 PG 大版本的管理差异,让您用简单的几行命令,就可以完成 PG 内核与 531 个扩展的安装与管理。
1414

@@ -57,10 +57,12 @@ $ pig install -y vector # 您可以使用扩展名称(vector)
5757
- [**pig repo**](/docs/pig/repo/):管理 APT/YUM 软件仓库
5858
- [**pig ext**](/docs/pig/ext/):管理 PostgreSQL 扩展
5959
- [**pig build**](/docs/pig/build/):从源码构建扩展
60+
- [**pig install**](/docs/pig/cmd/#pig-install):通过原生包管理器安装 PostgreSQL 与扩展包
6061

6162
**Pigsty 管理**
6263

6364
- [**pig sty**](/docs/pig/sty/):管理 Pigsty 安装
65+
- [**pig context**](/docs/pig/cmd/#pig-context):采集主机、PostgreSQL、Patroni、pgBackRest 与扩展上下文
6466
- [**pig pg**](/docs/pig/pg/):管理本地 PostgreSQL 服务
6567
- [**pig pt**](/docs/pig/pt/):管理 Patroni HA 集群
6668
- [**pig pb**](/docs/pig/pb/):管理 pgBackRest 备份

content/docs/pig/build.md

Lines changed: 77 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pig build - Build Postgres Extension
1414

1515
Environment Setup:
1616
pig build spec # init build spec and directory (~ext)
17-
pig build repo # init build repo (=repo set, with remove+update)
17+
pig build repo # init build repo (=repo set -ru)
1818
pig build tool [mini|full|...] # init build toolset
1919
pig build rust [-y] # install Rust toolchain
2020
pig build pgrx [-v <ver>] # install & init pgrx (0.19.1)
@@ -31,18 +31,18 @@ Quick Start:
3131
pig build pkg citus # build citus extension
3232
```
3333

34-
| 命令 | 描述 | 备注 |
35-
|:---|:---|:---|
36-
| `build spec` | 初始化构建规范仓库 | |
37-
| `build repo` | 初始化所需仓库 | 需要 sudo 或 root 权限 |
38-
| `build tool` | 初始化构建工具 | 需要 sudo 或 root 权限 |
39-
| `build rust` | 安装 Rust 工具链 | 需要 sudo 或 root 权限 |
40-
| `build pgrx` | 安装并初始化 pgrx | 需要 sudo 或 root 权限 |
41-
| `build proxy` | 初始化构建代理 | |
42-
| `build get` | 下载源代码 tarball | |
43-
| `build dep` | 安装扩展构建依赖 | 需要 sudo 或 root 权限 |
44-
| `build ext` | 构建扩展包 | 需要 sudo 或 root 权限 |
45-
| `build pkg` | 完整构建流程:get、dep、ext | 需要 sudo 或 root 权限 |
34+
| 命令 | 描述 | 备注 |
35+
|:--------------|:-------------------|:------------------|
36+
| `build spec` | 初始化构建规范目录 | |
37+
| `build repo` | 初始化所需仓库 | 需要 sudo 或 root 权限 |
38+
| `build tool` | 初始化构建工具 | 需要 sudo 或 root 权限 |
39+
| `build rust` | 安装 Rust 工具链 | 需要 sudo 或 root 权限 |
40+
| `build pgrx` | 安装并初始化 pgrx | 需要 sudo 或 root 权限 |
41+
| `build proxy` | 初始化构建代理 | |
42+
| `build get` | 下载源代码 tarball | |
43+
| `build dep` | 安装扩展构建依赖 | 需要 sudo 或 root 权限 |
44+
| `build ext` | 构建扩展包 | 需要 sudo 或 root 权限 |
45+
| `build pkg` | 完整构建流程:get、dep、ext | 需要 sudo 或 root 权限 |
4646
{.full-width}
4747

4848

@@ -58,8 +58,8 @@ pig build spec
5858
pig build pkg citus
5959

6060
# 构建的包将位于:
61-
# - EL: ~/rpmbuild/RPMS/
62-
# - Debian: ~/
61+
# - EL: ~/ext/pkg/(同时可从 ~/rpmbuild/RPMS/ 访问)
62+
# - Debian: ~/ext/pkg/(同时可从 ~/debbuild/DEBS/ 访问)
6363
```
6464

6565
更精细的控制方式:
@@ -85,48 +85,60 @@ pig build pkg citus # get + dep + ext
8585
### 目录结构
8686

8787
```
88-
~/ext/ # 默认构建规范目录
89-
├── Makefile # 主构建 makefile
90-
├── <extension>/ # 每个扩展的目录
91-
│ ├── Makefile # 扩展特定的 makefile
92-
│ ├── <extension>.spec # RPM 规范文件(EL)
93-
│ └── debian/ # Debian 打包文件
94-
│ ├── control
95-
│ ├── rules
96-
│ └── ...
88+
~/ext/ # 真实工作目录
89+
├── pkg/ # 构建产物输出目录
90+
├── src/ # 源码 tarball 下载目录
91+
├── log/ # 构建日志目录
92+
└── tmp/ # 临时目录
93+
94+
~/rpmbuild/ # EL 构建目录
95+
├── RPMS -> ~/ext/pkg # RPM 产物软链接
96+
├── SOURCES -> ~/ext/src # 源码软链接
97+
├── SPECS/
98+
├── BUILD/
99+
├── BUILDROOT/
100+
└── SRPMS/
101+
102+
~/debbuild/ # Debian / Ubuntu 构建目录
103+
├── DEBS -> ~/ext/pkg # DEB 产物软链接
104+
├── SOURCES -> ~/ext/src # 源码软链接
105+
├── SPECS/
106+
└── BUILD/
97107
```
98108

99109
**构建输出位置:**
100-
- **EL 系统**`~/rpmbuild/RPMS/<arch>/`
101-
- **Debian 系统**`~/`(deb 文件)
110+
- **EL 系统**`~/ext/pkg/`,并通过 `~/rpmbuild/RPMS/` 软链接访问
111+
- **Debian 系统**`~/ext/pkg/`,并通过 `~/debbuild/DEBS/` 软链接访问
102112

103113

104114
## build spec
105115

106-
设置构建规范仓库和目录结构
116+
设置构建规范与目录结构
107117

108118
```bash
109119
pig build spec # 在默认位置初始化 ~/ext
120+
pig build spec -f # 强制重新下载构建规范 tarball
121+
pig build spec -m # 优先使用 pigsty.cc 中国镜像
110122
```
111123

112124
**功能:**
113-
1. 克隆或更新扩展构建规范仓库
114-
2. 创建必要的目录结构
115-
3. 设置 makefile 和构建脚本
116-
4. 准备平台特定的打包文件
125+
1. 下载 RPM 或 DEB 构建规范 tarball
126+
2. 创建 `~/ext/{pkg,src,log,tmp}` 与平台构建目录
127+
3. `RPMS/DEBS``SOURCES` 软链接到 `~/ext/pkg``~/ext/src`
128+
4. 通过增量 `rsync` 同步 makefile、spec 与 Debian 打包文件
117129

118-
**仓库位置** 默认 `~/ext/`,包含 100+ 扩展的构建规范
130+
**工作目录** 默认使用 `~/ext/` 保存源码、产物、日志与临时文件;平台打包目录为 `~/rpmbuild/``~/debbuild/`
119131

120132

121133
## build repo
122134

123135
初始化构建扩展所需的包仓库。
124136

125137
```bash
126-
pig build repo # 等同于:pig repo set(内部执行 remove+update)
138+
pig build repo # 等同于:pig repo set -ru
127139
```
128140

129-
**功能:** 移除现有仓库、添加所有必需仓库(pgdg、pigsty、node)、更新包缓存
141+
**功能:** `pig repo set -ru` 初始化构建所需仓库:移除旧仓库、添加所需仓库并更新包缓存
130142

131143

132144
## build tool
@@ -165,7 +177,9 @@ pig build rust -y # 强制重新安装 Rust 工具链
165177

166178
```bash
167179
pig build pgrx # 安装最新稳定版 (0.19.1)
168-
pig build pgrx -v 0.15.0 # 安装特定版本
180+
pig build pgrx -v 0.19.1 # 安装特定版本
181+
pig build pgrx --pg 18,17,16 # 为指定 PG 版本初始化 pgrx
182+
pig build pgrx --pg init # 只执行 cargo pgrx init,不传 PG 参数
169183
```
170184

171185
**前提条件:** 必须先安装 Rust 工具链、PostgreSQL 开发头文件。
@@ -177,8 +191,8 @@ pig build pgrx -v 0.15.0 # 安装特定版本
177191

178192
```bash
179193
pig build proxy # 交互式设置
180-
pig build proxy user@host:8080 # 直接配置
181-
pig build proxy http://proxy.company.com:3128
194+
pig build proxy user@host:8080 # 使用默认本地端口 127.0.0.1:12345
195+
pig build proxy user@host:8080 127.0.0.1:1080
182196
```
183197

184198

@@ -189,20 +203,23 @@ pig build proxy http://proxy.company.com:3128
189203
```bash
190204
pig build get citus # 单个扩展
191205
pig build get citus pgvector # 多个扩展
192-
pig build get all # 所有可用扩展
193-
pig build get std # 标准扩展
194206
pig build get pdu pgdog # 使用内置源码 alias
207+
pig build get citus -f # 已存在时仍重新下载
208+
pig build get citus -m # 优先使用 pigsty.cc 中国镜像
195209
```
196210

197-
一些源码包并不直接对应扩展名,`pig build get` 内置了少量特殊 alias 以便直接下载源码。`v1.3.2` 新增了 `pdu``pgdog` 两个 alias。
211+
`pig build get` 的参数是扩展名、包名或源码文件名;未知名称会按源码文件名处理。它不会把 `all``std` 展开为内置集合。需要批量下载时,请显式列出目标包名。
212+
213+
一些源码包并不直接对应扩展名,`pig build get` 内置了特殊 alias 以便直接下载源码。
198214

199215
```bash
200216
pig build get pdu # 下载 pdu-3.0.25.12.tar.gz
201217
pig build get pgdog # 下载 pgdog-0.1.32.tar.gz
202218
pig build get pgedge # 同时下载 PostgreSQL 与 spock 源码
219+
pig build get onesparse # 同时下载 onesparse、graphblas、lagraph
203220
```
204221

205-
当前常见的特殊源码 alias 包括:`babelfishpg` / `babelfish``agensgraph` / `agens``pgedge``pdu``pgdog`
222+
当前常见的特殊源码 alias 包括:`babelfishpg` / `babelfish``agensgraph` / `agentsgraph``oriolepg` / `orioledb``cloudberry``pgedge``pdu``pgdog``rdkit``onesparse``libfepgutils`
206223

207224

208225
## build dep
@@ -215,6 +232,10 @@ pig build dep citus pgvector # 多个扩展
215232
pig build dep citus --pg 17,16 # 为特定 PG 版本
216233
```
217234

235+
**选项:**
236+
237+
- `--pg`:指定一个或多个 PostgreSQL 大版本;未指定时按扩展元数据或本机安装自动推断
238+
218239

219240
## build ext
220241

@@ -227,6 +248,11 @@ pig build ext citus --pg 17 # 为特定 PG 版本
227248
pig build ext citus -s # 包含调试符号(仅 RPM)
228249
```
229250

251+
**选项:**
252+
253+
- `--pg`:指定一个或多个 PostgreSQL 大版本
254+
- `-s|--symbol`:构建调试符号包(仅 RPM)
255+
230256

231257
## build pkg
232258

@@ -237,8 +263,15 @@ pig build pkg citus # 构建单个扩展
237263
pig build pkg citus pgvector # 构建多个
238264
pig build pkg citus --pg 17,16 # 为多个 PG 版本
239265
pig build pkg citus -s # 包含调试符号
266+
pig build pkg citus -m # 优先使用 pigsty.cc 中国镜像下载源码
240267
```
241268

269+
**选项:**
270+
271+
- `--pg`:指定一个或多个 PostgreSQL 大版本
272+
- `-s|--symbol`:构建调试符号包(仅 RPM)
273+
- `-m|--mirror`:下载源码时优先使用 `pigsty.cc` 镜像
274+
242275

243276
## 常见工作流
244277

@@ -254,8 +287,8 @@ pig build tool
254287
pig build pkg pg_partman
255288

256289
# 3. 安装构建的包
257-
sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/pg_partman*.rpm # EL
258-
sudo dpkg -i ~/pg_partman*.deb # Debian
290+
sudo rpm -ivh ~/ext/pkg/pg_partman*.rpm # EL
291+
sudo dpkg -i ~/ext/pkg/*partman*.deb # Debian
259292
```
260293

261294
### 工作流 2:构建 Rust 扩展
@@ -329,7 +362,7 @@ export PG_CONFIG=/usr/pgsql-18/bin/pg_config
329362
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
330363

331364
# 更新 PGRX
332-
cargo install cargo-pgrx --force
365+
cargo install --locked cargo-pgrx@0.19.1
333366

334367
# 重新初始化 PGRX
335368
cargo pgrx init

content/docs/pig/cmd.md

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ categories: [参考]
1212
- [**pig repo**](/docs/pig/repo/):管理软件仓库
1313
- [**pig ext**](/docs/pig/ext/):管理 PostgreSQL 扩展
1414
- [**pig build**](/docs/pig/build/):从源码构建扩展
15+
- **pig install**:使用原生包管理器安装包,并对 PostgreSQL 别名做翻译
1516
- [**pig sty**](/docs/pig/sty/):管理 Pigsty 安装
1617
- [**pig pg**](/docs/pig/pg/):管理本地 PostgreSQL 服务器
1718
- [**pig pt**](/docs/pig/pt/):管理 Patroni HA 集群
1819
- [**pig pb**](/docs/pig/pb/):管理 pgBackRest 备份与恢复
19-
- [**pig pitr**](/docs/pig/pb/):进行完整 PITR 工作流
20+
- [**pig pitr**](/docs/pig/pitr/):进行完整 PITR 工作流
21+
- **pig context**:输出面向人工和 Agent 的环境上下文快照
2022

2123

2224

@@ -44,12 +46,13 @@ PostgreSQL Extension Manager
4446

4547
Pigsty Management Commands
4648
do 运行管理任务
47-
patroni 使用 patronictl 管理 Patroni 集群
48-
pg_exporter 管理 pg_exporter 与监控指标
49-
pgbackrest 管理 pgBackRest 备份与恢复
49+
pg 管理本地 PostgreSQL 服务器与数据库
50+
pt 使用 patronictl 管理 Patroni 集群
51+
pb 管理 pgBackRest 备份与恢复
52+
pe 管理 pg_exporter 与监控指标
5053
pitr 编排式时间点恢复
51-
postgres 管理本地 PostgreSQL 服务器与数据库
5254
sty 管理 Pigsty 安装
55+
context 显示环境上下文快照
5356

5457
Additional Commands:
5558
completion 生成指定 shell 的自动补全脚本
@@ -64,9 +67,9 @@ Flags:
6467
-h, --help 获取帮助信息
6568
-H, --home string Pigsty 主目录路径
6669
-i, --inventory string 配置清单路径
67-
-t, --toggle 帮助信息中的占位参数
6870
--log-level string 日志级别: debug, info, warn, error, fatal, panic (默认 "info")
6971
--log-path string 日志文件路径,默认为终端输出
72+
-o, --output string 输出格式:text, yaml, json, json-pretty(默认 "text"
7073

7174
使用 "pig [command] --help" 获取命令的详细信息。
7275
```
@@ -131,6 +134,20 @@ pig build ext citus # 构建包
131134
```
132135

133136

137+
## pig install
138+
139+
使用系统原生包管理器安装软件包,并对 PostgreSQL 内核、扩展及常用别名做包名翻译。需要直接传递系统包名时,可使用 `-n/--no-translation`
140+
141+
```bash
142+
pig install pg_duckdb # 安装扩展并自动翻译包名
143+
pig install pg18 # 安装 PostgreSQL 18 内核包组
144+
pig install nginx htop vim # 安装多个系统包
145+
pig install unknown-package -n # 禁用翻译,按原始包名安装
146+
pig install pg18 --plan # 预览安装计划
147+
pig install pg_vector -y # 自动确认安装
148+
```
149+
150+
134151
## pig sty
135152

136153
安装 Pigsty 发行版,详情请参考 [`pig sty`](/docs/pig/sty/)
@@ -143,6 +160,18 @@ pig sty deploy # 运行部署 playbook
143160
```
144161

145162

163+
## pig context
164+
165+
输出环境上下文快照,覆盖主机、PostgreSQL、Patroni、pgBackRest 与已安装扩展。该命令适合排障和自动化脚本快速了解当前节点状态。
166+
167+
```bash
168+
pig context # 文本输出
169+
pig context -o json # JSON 输出
170+
pig context -m postgres # 只输出 PostgreSQL 模块(默认包含 host)
171+
pig context -m postgres,!host # 排除 host 模块
172+
```
173+
174+
146175
## pig pg
147176

148177
管理本地 PostgreSQL 服务器,详情请参考 [`pig pg`](/docs/pig/pg/)

0 commit comments

Comments
 (0)