2011-12-25 25 views
5

Pracuję nad uruchomieniem postgis 2.0 na serwerze Linux Ubuntu-Maverick-Amd64 przez około tydzień. Wybieram wsparcie dla rastrów i topologii.Instalowanie w pełni funkcjonalnego PostGIS 2.0 w systemie Ubuntu Linux Problemy z GEOS/GDAL

użyłem następujących czynności, aby skonfigurować:

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

Poniższy plik konfiguracyjny opisuje moje widowisko.

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 

udało mi się uruchomić make sudo make install i ze starszymi (i bezużyteczne dla nowych funkcji) wersjach gdal i GEOS. Tak więc przypuszczam, że problemy dotyczą mojej instalacji GEOS lub GDAL. Nie ma pakietu do pobrania 3.3.1 dla mojej wersji Linuksa, więc musiałem skompilować go ze źródła i prawdopodobnie pomieszałem to, ponieważ nie jestem do tego przyzwyczajony, mimo że postępowałem zgodnie ze wskazówkami podanymi na website i pobrałem plik tar. Nie odbiegałem od instrukcji innych niż przechodzenie do katalogu, aby skonfigurować make i install. Zrobiłem wszystko, co wyraźnie powiedziałem, że powinienem zrobić. Nie dostałem wiadomość, że zbudowany prawidłowo, kiedy go zbudowano, więc myślę, że coś poszło nie tak jak mam następujące błędy pod koniec mojej nieudanej kompilacji 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 

Moduł JSON-C także problem, ponieważ wszystko, co mówią, że ma z nim do czynienia, nie jest nim, a /.configure to robi. ale wydaje mi się, że prawdopodobnie potrzebuję więcej.

Naprawdę denerwuje mnie to, ponieważ czuję, że jestem tak blisko, ale wciąż uderzam w nieprzezwyciężone przeszkody, gdy nie mam pojęcia, co robić.

Byłbym bardzo wdzięczny każdemu, kto pomógłby naprawić te jawne błędy i pomógł mi nawigować w tym naprawdę piekielnym procesie instalacji! Byłbym skłonny odinstalować wszystko i zacząć od początku, chociaż tak naprawdę nie wiem, jak odinstalować geos, ponieważ musiałem je skompilować ze źródła, a nie apt-get!

Jestem także nowy w Linuksie (w końcu zorientowałem się, jak zainstalować postgis 2.0 na moim laptopie z systemem Windows!), Więc proszę, bądź jak najbardziej opisowy.

Z góry dziękuję, bo to był dla mnie ogromny ból głowy!

+1

można uzyskać pomoc na temat tego na co http://gis.stackexchange.com/. Jest już sporo postów Q/A PostGIS dotyczących tego samego PostGIS 2.0. – RyanDalton

Odpowiedz

4
  • pierwsze: to jest wspólne wykonywanie ./configure i make jako zwykły użytkownik, a tylko robi finał make install jako użytkownik root. (pozwoli to uniknąć zanieczyszczania katalogu kompilacji plikami o dziwnych własnościach)
  • sekunda: Postgis-2.0, który zamierzasz zbudować, jest wersją wciąż rozwijaną. Powinieneś zawsze oczekiwać (pomniejszych) błędów kompilacji.
  • trzecie: (dobra nowina) udało mi się dostać to skompilowane, ale najpierw musiał skonfigurować & build & zainstalować
    • GEOS-3.3.1
    • proj-4.7.0
    • json-c -0.9
    • gdal-1.8.1

geos-2.0SVN został następnie zbudowany z:

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 

Był jeden drobny problem z wyprzedzającym * .sql.in poprzez gcc (fuj), który może (tymczasowo) będzie pracował wokół komentując na jedną linię (@linenumber 91)

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

w pliku/rt_pg/Makefile.in rastrowej (przed ./configure, oczywiście)

+0

Dzięki, jest to bardzo pomocne! Jedno pytanie: dokumentacja Postgis stwierdza, że ​​parametr --prefix jest obecnie uszkodzony, więc można go zainstalować tylko w katalogu postgres. Jeśli instalujesz postgis we własnym katalogu, czy nadal działa poprawnie, gdy dodasz funkcje postgis sql do bazy danych? Powiedzmy, że chcę odinstalować postgis i wszystkie jego zależności. Czy mogę po prostu usunąć folder opt/{program} dla każdej zależności, aby to osiągnąć, czy jest coś, co trzeba zrobić? – THX1138

+0

Nie wiem, czy instalacja w poddrzewach Postgres została naprawiona w wersji 2.0; możliwe. Usuwanie WRT: Istnieje kilka skryptów do usunięcia postgis-rozszerzeń z katalogów, gdzieś w .../share lub .../contrib, IIRC. Najwygodniej jest usunąć lub zmienić nazwę wszystkich katalogów instalacyjnych, a następnie zacząć konfigurować i kompilować i instalować postgreSy od zera. – wildplasser