PostGIS:创建扩展失败

时间:2014-04-26 06:30:13

标签: postgresql postgis

我在psql中运行命令:

my-spatial-db=# CREATE EXTENSION postgis;

并收到错误:

ERROR:  could not open extension control file "/usr/share/pgsql/extension/postgis.control": No such file or directory

my-spatial-db=# select postgis_full_version();
NOTICE:  Function postgis_gdal_version() not found.  Is raster support enabled and rtpostgis.sql installed?
NOTICE:  Function postgis_topology_scripts_installed() not found. Is topology support enabled and topology.sql installed?
NOTICE:  Function postgis_raster_scripts_installed() not found. Is raster support enabled and rtpostgis.sql installed?
NOTICE:  Function postgis_raster_lib_version() not found. Is raster support enabled and rtpostgis.sql installed?
                                 postgis_full_version                                      
-----------------------------------------------------------------------------------------------
 POSTGIS="2.0.2 r10789" GEOS="3.3.6-CAPI-1.7.6" PROJ="Rel. 4.8.0, 6 March 2012" LIBXML="2.9.1"


my-spatial-db=# select version();
                                                   version                                                   
-------------------------------------------------------------------------------------------------------------
PostgreSQL 9.2.7 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7), 64-bit

我从.tar安装了PostGIS,因为我的操作系统是AWS EC2 Amazon Linux(没有内置的postgis软件包)

我也运行了这两个命令:

psql -d my-spatial-db -f /usr/share/pgsql/contrib/postgis-2.0/postgis.sql
psql -d my-spatial-db -f /usr/share/pgsql/contrib/postgis-2.0/spatial_ref_sys.sql

我错过了什么吗?非常感谢!

2 个答案:

答案 0 :(得分:2)

对于RHEL 5上的读者,该特定发行版不通过PGDG per this blog post支持PostGIS 2,因为RHEL 5中没有合适的libgeos。

此答案仅适用于RHEL5。如果你正在使用别的东西,你可能只是没有安装PostGIS。

答案 1 :(得分:0)

您的数据库是否需要栅格或拓扑支持?如果没有,那么您已经使用启用程序脚本在空间上启用了数据库,因为postgis_full_version()有效(除非您需要此功能,否则请忽略NOTICE。)

请注意,CREATE EXTENSION postgis是一种不同的方式来安装PostGIS,这与使用启用程序脚本(psql -f /path/to/postgis.sql)不兼容。如果您更喜欢这种方法,那么您需要构建具有栅格支持的PostGIS(即需要libgdal-dev),并且不要运行启用脚本。

参见相关回答:https://stackoverflow.com/a/22998869/327026