【发布时间】:2016-02-26 16:20:37
【问题描述】:
我之前在我的 Mac 上安装过 PostgreSQL 和 Postgis,当时它是 9.3 和 2.1,但从未使用过。 在将 pg 升级到 4.5_2 并将 postgis 升级到 2.2(现在是最新版本)之后,我尝试构建我的第一个基于 postgis 的应用程序并像这样创建 template_postgis:
createdb template_postgis
psql -d template_postgis -f /usr/local/share/postgis/postgis.sql
得到了这个错误:
SET
BEGIN
psql:/usr/local/share/postgis/postgis.sql:77: ERROR: could not access file "$libdir/plpgsql": No such file or directory
...
所以我运行pg_config --libdir,它显示/usr/local/lib,然后pg_config --pkglibdir 返回/usr/local/lib/postgresql。
我在 pkglibdir 不是 libdir 下找到了plpgsql.so,
所以我在 libdir 下创建了一个名为 plpgsql.so 和另一个 plpgsql 的符号链接,但它仍然不起作用。
真正的问题是什么?我该如何解决这个问题?
我的 Mac 运行的是最新的 OS X 10.11,它们都由 homebrew 安装和升级。
更新:
受@Stefan D. 的启发,我运行psql -c "\dx" 来列出所有已安装的扩展结果:
Name | Version | Schema | Description
---------+---------+------------+---------------------------------------------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
postgis | 2.1.7 | public | PostGIS geometry, geography, and raster spatial types and functions
所以我运行ALTER EXTENSION postgis UPDATE TO "2.2.0"; 手动更新postgis 的版本,但又遇到了另一个错误:could not open extension control file "/usr/local/Cellar/postgresql/9.4.5/share/postgresql/extension/postgis.control": No such file or directory。
这是连线的,因为我的 PostgreSQL 安装在 /usr/local/Cellar/postgresql/9.4.5_2/ 中。并且postgis.control 也没有在/usr/local/Cellar/postgresql/9.4.5_2/share/postgresql/extension/ 中列出。
定位后,我发现所有.control文件在/usr/local/share/postgresql/extension/中都有一个符号链接。
【问题讨论】:
标签: postgresql postgis