2011-12-25 7 views
5

He estado trabajando para que Postgis 2.0 funcione y se ejecute en un servidor ubuntu-maverick-amd64 Linux durante aproximadamente una semana. Voy por soporte de trama y topología.Instalación de PostGIS 2.0 totalmente funcional en Ubuntu Linux GEOS/GDAL issues

que utiliza lo siguiente para configurar:

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

El archivo de configuración a continuación describe las especificaciones de mi.

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 

me las arreglé para hacer funcionar y sudo make install con versiones anteriores (e inútiles para las nuevas funciones) de gdal y GEOS. Por lo tanto, mi suposición es que el problema radica en mi instalación de GEOS o GDAL. No hay un paquete descargable 3.3.1 para mi versión de Linux así que tuve que compilar desde el código fuente y probablemente lo arruiné porque no estoy acostumbrado a hacerlo, aunque seguí las instrucciones provistas en el website y descargué el archivo tar. No me desvié de las instrucciones que no sean cd-ing al directorio para configurar make e instalar. Hice todo lo que explícitamente declaró que debería hacer. No me sale un mensaje que se ha construido correctamente cuando construí, así que creo que algo salió mal ya que me dieron los siguientes errores cerca del final de mi fallido acumulación 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 

El módulo JSON-C fue también es un problema, ya que todo lo que dicen que hacer con él es deshacerlo y /.configure hacerlo. pero siento que probablemente haya más de lo que necesito hacer.

Estoy realmente frustrado con esto ya que siento que estoy muy cerca, pero sigo golpeando obstáculos insuperables donde no tengo ni idea de qué hacer.

¡Agradecería mucho a cualquiera que pueda ayudar a solucionar estos flagrantes errores y me ayude a navegar este proceso de instalación verdaderamente infernal! Estaría dispuesto a desinstalar todo y comenzar desde el principio, aunque en realidad no sé cómo desinstalar los geos porque tuve que compilarlos desde el origen y no con apt-get.

También soy nuevo en Linux (¡finalmente descubrí cómo instalar Postgis 2.0 en mi portátil con Windows!), Así que sea lo más descriptivo posible.

Gracias de antemano, ya que esto ha sido un gran dolor de cabeza para mí!

+1

Usted puede obtener más ayuda en esta encima en http://gis.stackexchange.com/. Hay un buen número de Q/A de PostGIS que ya están en marcha sobre PostGIS 2.0. – RyanDalton

Respuesta

4
  • Primero: es común para llevar a cabo ./configuremake y como un usuario normal, y sólo haciendo el final make install como usuario root. (Esto evitará que el directorio de compilación sea contaminado por archivos con propiedad extraña)
  • segundo: el postgis-2.0 que pretende construir es una versión todavía en desarrollo. Siempre debe esperar errores de construcción (menores).
  • tercero: (las buenas noticias) He conseguido que compila, pero primero tuvo que configurar & acumulación & instalar
    • GEOS-3.3.1
    • proj-4.7.0
    • JSON-c -0,9
    • gdal-1.8.1

GEOS-2.0SVN se construyó posteriormente con:

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 

Había un problema menor con procesamiento previo * .sql.in a través de gcc (puaj), que se puede (temporalmente) se trabajó a alrededor comentando una línea (@linenumber 91)

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

en el archivo/rt_pg/Makefile.in trama (antes de ./configure, por supuesto)

+0

¡Gracias, esto es muy útil! Una pregunta: La documentación de postgis indica que el parámetro --prefix está actualmente roto, por lo que solo se puede instalar en el directorio postgres. Si instala postgis en su propio directorio ¿sigue funcionando correctamente cuando agrega las funciones de postgis sql a una base de datos? Además, supongamos que quiero desinstalar postgis y todas sus dependencias. ¿Puedo eliminar la carpeta opt/{program} para cada dependencia para lograr esto o hay más que se debe hacer? – THX1138

+0

No sé si la instalación en los subárboles de postgres se ha corregido en 2.0; podría ser. Eliminación de WRT: hay algunos scripts para eliminar las extensiones de postgis de los catálogos, en algún lugar de .../share o .../contrib, IIRC. Lo más robusto es eliminar o renombrar todos los directorios de instalación, y luego comenzar a configurar y compilar e instalar Postgres desde cero. – wildplasser