2011-12-25 11 views
5

Ho lavorato per far funzionare postgis 2.0 su un server linux ubuntu-maverick-amd64 per circa una settimana. Sto andando per supporto raster e topologia.Installazione di un PostGIS 2.0 completamente funzionante su problemi di Ubuntu Linux GEOS/GDAL

ho usato la seguente configurazione:

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

Il file di configurazione di seguito descrive mie specifiche.

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 

sono riuscito a correre fare e sudo make install con le versioni precedenti (e inutili per le nuove funzioni) di GDAL e GEOS. Quindi, la mia ipotesi è che i problemi si trovano nella mia installazione di GEOS o GDAL. Non esiste un pacchetto scaricabile 3.3.1 per la mia versione di Linux, quindi ho dovuto creare dal sorgente e probabilmente ho incasinato tutto questo perché non sono abituato a farlo, anche se ho seguito le indicazioni fornite su website e scaricato il tarfile. Non ho deviato dalle istruzioni diverse da cd-ing nella directory per configurare make e install. Ho fatto tutto ciò che affermava esplicitamente che dovevo fare. Non ho avuto un messaggio che ha costruito correttamente quando ho costruito, quindi penso che qualcosa è andato storto, come ho avuto i seguenti errori verso la fine della mia generazione PostGIS fallito:

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 

Il modulo JSON-C era anche un problema, dato che tutto quello che dicono di farlo è decomprimerlo e /.configure farlo. ma sento che c'è probabilmente più che ho bisogno di fare.

Mi sento davvero frustrato perché sento che sono così vicino, ma continuo a superare ostacoli insormontabili in cui non ho idea di cosa fare.

Sarei molto grato a chiunque possa contribuire a correggere questi errori flagranti e aiutarmi a navigare in questo processo di installazione davvero infernale! Sarei disposto a disinstallare tutto e ricomincio dall'inizio, anche se in realtà non so come disinstallare i geos perché ho dovuto costruirli dal sorgente e non da apt-get!

Sono anche nuovo di Linux (finalmente ho capito come installare PostISIS 2.0 sul mio computer portatile Windows!), Quindi sii il più descrittivo possibile.

Grazie in anticipo, perché questo è stato un enorme mal di testa per me!

+1

Si potrebbe ottenere più aiuto su questo oltre a http://gis.stackexchange.com/. Ci sono già alcuni QG di PostGIS su PostGIS 2.0. – RyanDalton

risposta

4
  • Primo: è comune per eseguire ./configure e make come utente normale, e solo facendo il finale make install come utente root. (questo eviterà che la directory build venga contaminata da file con proprietà strane)
  • second: il postgis-2.0 che si intende creare è una versione ancora in sviluppo. Dovresti sempre aspettarti (minori) errori di compilazione.
  • terzo: (la buona notizia) sono riuscito a farlo compilato, ma prima ho dovuto configurare & accumulo & installare
    • GEOS-3.3.1
    • proj-4.7.0
    • JSON-c -0.9
    • gdal-1.8.1

GEOS-2.0SVN è stato successivamente costruito 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 

C'è stato un piccolo problema con la pre-elaborazione * .sql.in tramite gcc (bleah), che può (temporaneamente) essere lavorato intorno commentando una linea (@linenumber 91)

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

nel file/rt_pg/Makefile.in raster (prima di ./configure, ovviamente)

+0

Grazie, questo è molto utile! Una domanda: la documentazione postgis indica che il parametro --prefix è correntemente interrotto in modo che possa essere installato solo nella directory postgres. Se installi postgis nella propria directory, funziona ancora correttamente quando aggiungi le funzioni sql postgis a un database? Inoltre, dire che voglio disinstallare postgis e tutte le sue dipendenze. Posso semplicemente cancellare la cartella opt/{program} per ogni dipendenza per realizzare questo o c'è altro da fare? – THX1138

+0

Non so se l'installazione nei sottoalberi postgres sia stata risolta in 2.0; potrebbe essere. Rimozione WRT: ci sono alcuni script per rimuovere le estensioni postgis dai cataloghi, da qualche parte in .../share o .../contrib, IIRC. Più robusto è quello di eliminare o rinominare tutte le directory di installazione e quindi iniziare a configurare e compilare e installare postgres da zero. – wildplasser