7

在从源代码成功安装 postgresql 9.2.2 后(在 OpenSUSE 11.4 上,存储库中没有此版本),我正在尝试恢复使用 pg_trgm 扩展的数据库。这会导致错误,因为找不到 pg_trgm。

从这个 StackOverflow 问题:Postgres 中与 pg_trgm 的相似性函数中,我收集到 pg_trgm 应该在 /usr/share/postgresql//contrib 中,但我的 /usr 树中的任何地方都没有 contrib 文件夹。

此外,我似乎找不到关于 postgres 扩展机制如何工作或如何手动安装扩展的清晰解释。

postgresql 源代码树中有一个 contrib 文件夹,但我不知道如何使用它。我应该手动将它复制到 /usr 树的某个地方吗?谁能指出(或给出)如何在 postgresql 中安装 pg_trgm 之类的扩展的解释?

4

2 回答 2

15

假设您已经使用 配置了 postgresql ./configure,它使用了默认前缀/usr/local/pgsql,因此所有内容都安装在该目录下。

您链接到的答案与 Debian 有关,它使用符合 Debian 政策的不同布局,但在您的情况下/usr/share...是无关紧要的。无论如何,为了从 contrib 安装东西,实际上并不需要知道这一点,因为不需要手动复制任何东西。

要从源代码安装pg_trgm扩展,有两个步骤:

1) 从您的 postgresql 源代码树构建并安装它:

$ cd /path/to/src/postgresql-9.2.2/contrib/pg_trgm
$ 制作
$ sudo make install # 或者 su -c 'make install' 如果你不使用 sudo

psql2)在您的数据库中激活它:

$ sudo -u postgres psql -d 数据库 -c "创建扩展 pg_trgm;"

要在将来创建的任何数据库上默认激活它,请将此命令应用于template1数据库。

于 2013-01-12T15:06:29.870 回答
2

我在 Centos 7 中使用了 Postgresql,并且允许安装带有 pg_trgm 的软件包:

$yum 安装 postgresql-contrib

于 2017-03-01T08:25:56.950 回答