3

尝试在 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 

一切看起来都不错,对吧?但这就是问题所在。当我运行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

里面/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

我试图忽略这个问题并继续运行,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

我在网上环顾四周,发现另一个人有GEOSRelatePatternMatch问题,但他是由于多次安装 GEOS。据我所知,我只有一个。有任何想法吗?

4

3 回答 3

5

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

于 2012-07-10T17:48:36.037 回答
4

PostGIS 正在尝试从不同的地理库加载符号,然后是编译它的那个。在您的系统上搜索地理,将它们全部删除并重新编译。

于 2012-05-22T11:52:28.187 回答
0

我在写这些说明时遇到了这个问题,并为此提交了一个错误。我已经尝试修复它,但放弃了,因此make test. (我很想找出测试的问题并重新打开票,那里有任何指针。可能与 Makefile 有关,因为它正在将 GEOS 的版本与 GDAL 混合。)

尽管 失败make test,但您的安装应该不会出现此问题,因此我将继续执行下一步并安装。

于 2012-05-13T08:17:41.113 回答