更新:以为我已经解决了,但我没有......请看下面的内容。
我在Mac OSX上安装GeoDjango。我跟着Mac install instructions,一切顺利,现在creating a spatial database template for PostGIS。
但是,当我尝试加载PostGIS SQL例程时,我得到ERROR: could not access file "$libdir/postgis-1.5": No such file or directory
:
postgres$ psql -d template_postgis -f $POSTGIS_SQL_PATH/postgis.sql
psql:/usr/local/pgsql/share/contrib/postgis-1.5/postgis.sql:59: ERROR: could not access file "$libdir/postgis-1.5": No such file or directory
<snip>
psql:/usr/local/pgsql/share/contrib/postgis-1.5/postgis.sql:7785: ERROR: type "geometry" does not exist
出了什么问题,我该如何解决?
我找到these instructions from postgis IRC,但我认为我正在运行正确版本的pg_config等:
postgres$ which pg_config
/usr/local/pgsql/bin//pg_config
postgres$ which psql
/usr/local/pgsql/bin//psql
postgres$ pg_config --pkglibdir
/usr/local/pgsql/lib
我从KyngChaos安装了postgres及其PostGIS扩展程序。如果我查看/usr/local/pgsql/lib
,那里有一个名为postgis-1.5.so
的文件,所以我不明白为什么没找到它。
答案 0 :(得分:3)
我知道这是一个老问题,但我发现它使用谷歌,所以其他人也可能会在这里结束。
在我的Mac OSX macports安装上,我有两个带有.so文件的文件夹用于postgresql:
/opt/local/lib/postgresql90/
和
/usr/local/pgsql-9.0/lib/
好像我的安装在/ opt / local / lib / postgresql90 /中查找,而不是在/usr/local/pgsql-9.0/lib/中,所以要安装pg_trgm,我必须执行以下操作:
sudo ln -s /opt/local/lib/postgresql90/pg_trgm.so /usr/local/pgsql-9.0/lib/
这应该适用于任何不在正确位置的.so文件 - 在你的例子中它应该是
sudo ln -s /opt/local/lib/postgresql90/postgis-1.5.so /usr/local/pgsql-9.0/lib/
允许我安装postgis:)
答案 1 :(得分:0)
文件/usr/local/Cellar/postgresql9/9.0.17/lib/postgis-1.5.so丢失了。 brew升级后发生此错误,解决方法是卸载postgis并重新安装:
brew uninstall postgis15
brew install postgis15
结果应该是:PostGIS插件库安装到:/usr/local/Cellar/postgresql9/9.0.17/lib
所以之后你应该找到文件/usr/local/Cellar/postgresql9/9.0.17/lib/postgis-1.5.so