在Ubuntu Linux GEOS / GDAL问题上安装功能齐全的PostGIS 2.0

我一直在努力让postgis 2.0在ubuntu-maverick-amd64 linux服务器上运行大约一周.我正在寻求光栅和拓扑支持.

我使用以下配置:

sudo ./configure --with-raster --with-topology --with-jsondir=/home/zonabili/json-c-0.9

下面的配置文件描述了我的规格.

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.1
 GDAL config:          /usr/bin/gdal-config
 GDAL version:         1.8.0
 PostgreSQL config:    /usr/bin/pg_config
 PostgreSQL version:   PostgreSQL 9.1.2
 PROJ4 version:        47
 Libxml2 config:       /usr/bin/xml2-config
 Libxml2 version:      2.7.7
 JSON-C support:       Yes
 PostGIS debug level:  0
-------------- Extensions --------------
 PostGIS Raster:       0.1.6d
 PostGIS Topology

-------- Documentation Generation --------
 xsltproc:             /usr/bin/xsltproc
 xsl style sheets:
 dblatex:              /usr/bin/dblatex
 convert:              /usr/bin/convert

我设法运行make和sudo make install与更旧(和无用的新功能)版本的gdal和geos.因此,我猜测问题在于我安装GEOS或GDAL.我的linux版本没有3.3.1可下载包,所以我不得不从源代码构建,我可能搞砸了,因为我不习惯这样做,虽然我按照website上提供的指示并下载了tarfile.我没有偏离除了cd-ing之外的指令来配置make和install.我做了明确表示我应该做的一切.当我构建它时,我没有得到它正确构建的消息,所以我认为出现了错误,因为我在失败的postgis构建结束时遇到了以下错误:

make[2]: Leaving directory `/home/zonabili/postgis-2.0.0SVN/raster/rt_pg'
make -C loader
make[2]: Entering directory `/home/zonabili/postgis-2.0.0SVN/raster/loader'
/bin/bash ../..//libtool --mode=link gcc -g -O2  -fPIC -DPIC  -Wall -Wmissing-pr
ototypes -I../rt_core -I/home/zonabili/postgis-2.0.0SVN/liblwgeom  -I/usr/includ
e/gdal -I/usr/local/include raster2pgsql.o ../rt_core/librtcore.a ../rt_core/lib
rtcore.a /home/zonabili/postgis-2.0.0SVN/liblwgeom/.libs/liblwgeom.a -L/usr/lib
-lgdal1.8.0 -L/usr/local/lib -lgeos_c -lm -o raster2pgsql
gcc -g -O2 -fPIC -DPIC -Wall -Wmissing-prototypes -I../rt_core -I/home/zonabili/
postgis-2.0.0SVN/liblwgeom -I/usr/include/gdal -I/usr/local/include raster2pgsql
.o -o raster2pgsql  ../rt_core/librtcore.a /home/zonabili/postgis-2.0.0SVN/liblw
geom/.libs/liblwgeom.a -L/usr/lib -lgdal1.8.0 -L/usr/local/lib -lgeos_c -lm
/home/zonabili/postgis-2.0.0SVN/liblwgeom/.libs/liblwgeom.a(lwgeom_geos.o): In f
unction `LWGEOM2GEOS':
/home/zonabili/postgis-2.0.0SVN/liblwgeom/lwgeom_geos.c:319: undefined reference
 to `GEOSGeom_createEmptyPolygon'
/home/zonabili/postgis-2.0.0SVN/liblwgeom/.libs/liblwgeom.a(lwgeom_geos.o): In f
unction `lwgeom_sharedpaths':
/home/zonabili/postgis-2.0.0SVN/liblwgeom/lwgeom_geos.c:1024: undefined referenc
e to `GEOSSharedPaths'
/home/zonabili/postgis-2.0.0SVN/liblwgeom/.libs/liblwgeom.a(lwgeom_geos.o): In f
unction `lwgeom_snap':
/home/zonabili/postgis-2.0.0SVN/liblwgeom/lwgeom_geos.c:961: undefined reference
to `GEOSSnap'
v collect2: ld returned 1 exit status
make[2]: *** [raster2pgsql] Error 1
make[2]: Leaving directory `/home/zonabili/postgis-2.0.0SVN/raster/loader'
make[1]: *** [rtloader] Error 2
make[1]: Leaving directory `/home/zonabili/postgis-2.0.0SVN/raster'
make: *** [all] Error 1

JSON-C模块也是一个问题,因为他们所说的就是解决它并且/.configure来做它.但我觉得我可能需要做的更多.

我真的对此感到沮丧,因为我觉得自己如此接近,但仍然遇到难以逾越的障碍,我不知道该怎么办.

我非常感谢能够帮助解决这些明显错误的人,并帮助我解决这个真正地狱般的安装过程!我愿意卸载所有内容并从头开始,虽然我实际上并不知道如何卸载地理,因为我必须从源代码构建它们而不是apt-get!

我也是linux的新手(我终于想出了如何在我的Windows笔记本电脑上安装postgis 2.0!)所以请尽量描述.

在此先感谢,因为这对我来说是一个巨大的头痛!

最佳答案
>第一:执行./configure和make作为普通用户是很常见的,只做结局以root用户安装. (这将避免构建目录被具有奇怪所有权的文件污染)
>第二:你打算构建的postgis-2.0是一个仍处于开发阶段的版本.您应该始终期望(次要)构建错误.
>第三:(好消息)我设法编译,但我首先必须配置& build& install

> geos-3.3.1
> proj-4.7.0
> json-c-0.9
> gdal-1.8.1

geos-2.0SVN随后建成:

PROG=postgis
#VERSION=1.5.4SVN
VERSION=2.0.0SVN

./configure --prefix=/opt/${PROG} \
    --with-projdir=/opt/proj \
    --with-geosconfig=/opt/geos/bin/geos-config     \
    --with-jsondir=/opt/json-c      \
    --with-gdalconfig=/opt/gdal/bin/gdal-config     \
    --with-raster --with-topology

make

make check

sudo make install

通过gcc(yuck)预处理* .sql.in有一个小问题,可以(暂时)通过注释掉一行来处理(@linenumber 91)

## SQL objects deps here # comment out next line...
#$(SQL_OBJS): ../../postgis/sqldefines.h

在raster / rt_pg / Makefile.in文件中(当然是./configure之前)

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...