PostGIS 2.0.0安装GEOS问题

alu*_*ach 3 postgresql postgis

尝试在Ubuntu 11.10上安装PostGIS 2.0.0.我基本上遵循了这里的OSGeo指令:http://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS20Ubuntu1110src.我建立了GEOS 3.3.3.如果我输入geos-config --version终端,我会被退回3.3.3.

我可以跑./configure,make没有问题. ./configure以..结束:

 PostGIS is now configured for x86_64-unknown-linux-gnu 

-------------- Compiler Info -------------  
 C compiler:           gcc -g -O2 
 C++ compiler:         g++ -g -O2 

-------------- Dependencies --------------  
 GEOS config:          /usr/local/bin/geos-config 
 GEOS version:         3.3.3 
 GDAL config:          /usr/local/bin/gdal-config 
 GDAL version:         1.9.0 
 PostgreSQL config:    /usr/bin/pg_config 
 PostgreSQL version:   PostgreSQL 9.1.3 
 PROJ4 version:        47 
 Libxml2 config:       /usr/bin/xml2-config 
 Libxml2 version:      2.7.8 
 JSON-C support:       no 
 PostGIS debug level:  0 
 Perl:                 /usr/bin/perl 

--------------- Extensions ---------------  
 PostGIS Raster:       enabled 
 PostGIS Topology:     enabled 

-------- Documentation Generation --------  
 xsltproc:             /usr/bin/xsltproc 
 xsl style sheets:      
 dblatex:               
 convert:               
 mathml2.dtd:          http://www.w3.org/Math/DTD/mathml2/mathml2.dtd 
Run Code Online (Sandbox Code Playgroud)

一切看起来都不错吧?但这是问题所在.当我运行时make test,构建在最后失败了:

Creating spatial db postgis_reg
createlang: language "plpgsql" is already installed in database "postgis_reg"
Preparing spatial db postgis_reg

 Something went wrong during db initialization (core module).
 For details, check /tmp/pgis_reg/regress_log

make[1]: *** [check] Error 1
make[1]: Leaving directory `/home/anthony/Downloads/postgis-2.0.0/regress'
make: *** [check] Error 1
Run Code Online (Sandbox Code Playgroud)

里面/tmp/pgis_reg/regress_log是:

SET
BEGIN
psql:/home/anthony/Downloads/postgis-2.0.0/regress/00-regress-install/share/contrib/postgis/postgis.sql:69: ERROR:  could not load library "/home/anthony/Downloads/postgis-2.0.0/regress/00-regress-install/lib/postgis-2.0.so": /home/anthony/Downloads/postgis-2.0.0/regress/00-regress-install/lib/postgis-2.0.so: undefined symbol: GEOSRelatePatternMatch
Run Code Online (Sandbox Code Playgroud)

我试图忽略这个问题并继续前进,sudo make install但是当我设置我的数据库时,psql -d infinitydb -f postgis.sql我遇到了类似的问题:

SET
BEGIN
psql:postgis.sql:69: ERROR:  could not load library "/usr/lib/postgresql/9.1/lib/postgis-2.0.so": /usr/lib/postgresql/9.1/lib/postgis-2.0.so: undefined symbol: GEOSRelatePatternMatch
Run Code Online (Sandbox Code Playgroud)

我在网上四处看看,找到另外一个有GEOSRelatePatternMatch问题的人,但他的原因是多次安装GEOS.据我所知,我只有一个.有任何想法吗?

小智 5

我认为这是因为postgis认为库位于服务器上的不同位置,然后才是实际的.我从Ubuntu GIS获得的包有同样的错误.它们被安装到/ usr/lib,但由于某种原因postgis在/ usr/local/lib中寻找它们.无论哪种方式,我运行'ldconfig'并再次运行测试,它工作得很好.