# 版本与别名

> Crib 收录的 31 条 PostgreSQL 版本线、版本目录里五种状态的含义，以及 pg、pg18、pg96、pg@18.6 这类别名怎样解析到一个确切版本。

---

LLMS 索引： [llms.txt](/llms.txt)

---

## 收录的版本线 {#lines}

Crib 收录 31 条 PostgreSQL 手册版本线，每条一个中英双语资料包；Wiki 是另一个资料包。
默认版本是 PostgreSQL 18（18.6），也是 `pg` 别名的目标；只内置一个版本的构建内置的就是它。

| 版本线 | 内容版本 | 别名 |
| --- | --- | --- |
| 6.3 – 6.5 | 6.3.2、6.4.2、6.5.3 | `pg63` … `pg65`，或 `pg6.3` … `pg6.5` |
| 7.0 – 7.4 | 7.0.3、7.1.3、7.2.8、7.3.21、7.4.30 | `pg70` … `pg74`，或 `pg7.0` … `pg7.4` |
| 8.0 – 8.4 | 8.0.26、8.1.23、8.2.23、8.3.23、8.4.22 | `pg80` … `pg84`，或 `pg8.0` … `pg8.4` |
| 9.0 – 9.6 | 9.0.23、9.1.24、9.2.24、9.3.25、9.4.26、9.5.25、9.6.24 | `pg90` … `pg96`，或 `pg9.0` … `pg9.6` |
| 10 – 14 | 10.23、11.22、12.22、13.23、14.24 | `pg10` … `pg14` |
| 15 – 18 | 15.19、16.15、17.11、18.6 | `pg15` … `pg18` |
| 19 | 19rc1（预览版） | `pg19` |
| 20 | 20devel（开发快照） | `pg20`、`pgdevel` |
| Wiki | r5 | `pgwiki` |

内容版本来自构建时固定的来源快照，不代表上游当前的最新小版本。

## 版本状态 {#lifecycle}

版本目录给每个版本声明一种状态。状态由发布者写进签名目录，Crib 不按版本号、发布渠道或是否已安装去推断。

| 目录中的值 | 界面显示 | 普通列表和不带版本前缀的搜索 | 下载 |
| --- | --- | --- | --- |
| `default` | 默认 | 包含 | 可以 |
| `active` | 常规 | 包含 | 可以 |
| `historical` | 历史版本 | 只在专家模式下包含 | 可以 |
| `devel` | 开发版 | 只在专家模式下包含 | 可以 |
| `unavailable` | 无法下载 | 只在专家模式下包含 | 不能；已安装的照常阅读和搜索 |
| （未声明） | 状态未知 | 只在专家模式下包含 | 可以 |

- 目录里只有一个默认版本，就是 `pg` 指向的那个。开发版不能成为默认版本。
- “常规”只表示出现在普通列表里，不表示上游仍在维护。
- “状态未知”出现在不带状态字段的旧格式目录里。旧目录指定的默认版本仍出现在普通列表。
- 状态只决定版本出现在哪里、能不能新下载，不影响已安装内容的可读性。显式指定版本（版本前缀、版本菜单、书签、已打开的页面）照常可用，只要该版本已安装并启用。
- 还没有任何版本目录时，不带版本前缀的搜索只覆盖 App 内置的资料包。

> [!NOTE]
>
> 本页不列出各版本的状态。状态由发布者在签名目录中决定，正式目录还没有发布。

列表里还会出现另一组状态：已启用、已停用、未安装、目录已过期、不在目录中、失败、待移除。它们描述这台 Mac 上的安装情况和最近一次操作，与上表的发布状态互相独立。

## 别名怎样解析 {#aliases}

别名只存在于版本目录中，不对应额外的文件。解析规则：

1. 输入转成 ASCII 小写，`PG18` 与 `pg18` 相同。含非 ASCII 字符的输入不是别名。
1. 沿目录中的别名链一直走到一个确切版本，格式是 `项目@内容版本`，例如 `pg@18.6`。链不能有环，目标必须存在。
1. 在这个版本里选出包含所需语言的资料包。现在每个版本是一个中英双语包。
{.steps}

| 输入 | 解析路径 |
| --- | --- |
| `pg` | `pg` → `pg18` → `pg@18.6` |
| `pg18` | `pg18` → `pg@18.6` |
| `pg96` | `pg96` → `pg@9.6.24` |
| `pg9.6` | `pg9.6` → `pg96` → `pg@9.6.24` |
| `pg19` | `pg19` → `pg@19rc1` |
| `pgdevel` | `pgdevel` → `pg20` → `pg@20devel` |
| `pgwiki` | `pgwiki` → `pgwiki@r5` |
| `pg@18.6` | 本身就是确切版本 |

- `pg` 是唯一的总别名，指向发布者选定的默认版本线。`pg19`、`pg20` 不会自动变成 `pg`。
- `pg18` 这类版本线别名指向该线当前发布的小版本。版本号含点的旧版本线同时接受带点写法，如 `pg9.6`、`pg7.0`。
- 解析只读本机已缓存并校验过的目录，不需要联网。

## 别名不会换成别的小版本 {#exact}

别名总是解析到一个确切版本。目标不可用时，Crib 说明原因，不会改用同一版本线上已安装的其他小版本：

| 目标状态 | 搜索时的提示（以 18.7 为例） |
| --- | --- |
| 未安装 | `PG18（18.7）未安装，请在资料库中下载后再搜索。` |
| 已停用 | `PG18（18.7）未启用，请在资料库中启用后再搜索。` |
| 无法下载且未安装 | `PG18（18.7）已无法下载，请改用已安装的版本。` |

假设发布者把 `pg18` 从 18.6 移到 18.7，而你只装了 18.6：资料库在“全部版本”里显示 18.7 未安装；已安装的 18.6 仍可用 `pg@18.6` 或版本菜单打开。

发布新的小版本时，发布者新增一个文件和一条版本记录，再移动对应的版本线别名；18.6 的文件不会被覆盖或改名。
只移动别名不会重建搜索索引，也不会改变已打开的页面。

## 在哪里用别名 {#where}

- 搜索框的版本前缀：`PG18: vacuum`、`pg96: vacuum`、`pg@18.6: max_connections lang:en`。`pg18:vacuum` 与 `pg18: vacuum` 相同。
- 资料库的筛选框。
- [本地 API](/docs/integrations/local-api/) 和 [MCP](/docs/integrations/mcp/) 的搜索文本。

---

反链：

- [文档](/docs/)
- [收录内容](/docs/intro/content/)
- [管理资料库](/docs/library/manage/)
- [资料包格式](/docs/library/packs/)
