从源代码成功安装postgresql 9.2.2后(在OpenSUSE 11.4上,在存储库中没有此版本),我正在尝试恢复使用pg_trgm扩展名的数据库。这会导致错误,因为找不到pg_trgm。
从这个StackOverflow问题:Similarity function in Postgres with pg_trgm,我认为pg_trgm应该在/ usr / share / postgresql // contrib中,但是我的/ usr树中没有任何contrib文件夹。
另外,我似乎无法找到postgres扩展机制如何工作的明确解释,或者如何手动安装扩展。
postgresql源代码树中有一个contrib文件夹,但我不知道如何使用它。我应该手动将其复制到/ usr树吗?任何人都可以指点(或给出)如何在postgresql中安装像pg_trgm这样的扩展的解释吗?
答案 0 :(得分:12)
假设您已使用./configure
配置postgresql,它已使用默认前缀/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
数据库。
答案 1 :(得分:2)
我已在Centos 7中使用Postgresql,并且允许安装pg_trgm的软件包:
$ yum install postgresql-contrib