从源代码安装postgresql之后如何使用pg_trgm

6 postgresql installation

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

从这个StackOverflow问题:Postgres中的相似性函数和pg_trgm,我认为pg_trgm应该在/ usr/share/postgresql // contrib中,但是我的/ usr树中没有任何contrib文件夹.

此外,我似乎无法找到postgres扩展机制如何工作,或如何手动安装扩展的明确解释.

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

Dan*_*ité 13

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

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

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

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

$ cd /path/to/src/postgresql-9.2.2/contrib/pg_trgm
$ make
$ sudo make install # or su -c 'make install' if you don't use sudo

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

$ sudo -u postgres psql -d database -c "create extension pg_trgm;"

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