Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing a fully functional PostGIS 2.0 on Ubuntu Linux GEOS/GDAL issues

I have been working on getting postgis 2.0 up and running on an ubuntu-maverick-amd64 linux server for about a week now. I am going for raster and topology support.

I used the following to configure:

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

The configuration file below describes my specs.

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

I managed to run make and sudo make install with older (and useless for new functions) versions of gdal and geos. Thus, my guess is that the problems lies with my install of GEOS or GDAL. There is no 3.3.1 downloadable package for my linux version so I had to build from source and I probably messed this up as I am not used to doing it, although I followed the directions provided on the website and downloaded the tarfile. I did not deviate from the instructions other than cd-ing to the directory to configure make and install. I did everything that it explicitly stated that I should do. I didn't get a message that it built correctly when I built it, so I think something went wrong as I got the following errors near the end of my failed postgis build:

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

The JSON-C module was also a problem, as all they say to do with it is untar it and /.configure make it. but I feel like there is probably more that I need to do.

I am really getting frustrated with this as I feel that I am so close, but keep hitting insurmountable obstacles where I have no clue what to do.

I would greatly appreciate anyone who could help fix these flagrant errors and help me navigate this truly hellish installation process! I would be willing to uninstall everything and start from the beginning, although I don't actually know how to uninstall the geos because I had to build them from source and not apt-get!

I am also new to linux (I finally just figured out how to get postgis 2.0 installed on my windows laptop!) so please be as descriptive as possible.

Thanks in advance, as this has been a huge headache for me!

like image 318
THX1138 Avatar asked Oct 10 '22 03:10

THX1138


1 Answers

  • First: it is common to perform ./configure and make as a plain user, and only doing the finale make install as user root. (this will avoid the build directory to be polluted by files with strange ownership)
  • second: the postgis-2.0 that you intend to build is a version still in development. You should always expect (minor) build-errors.
  • third: (the good news) I managed to get it compiled, but I first had to configure&build&install
    • geos-3.3.1
    • proj-4.7.0
    • json-c-0.9
    • gdal-1.8.1

geos-2.0SVN was subsequently built with:

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

There was one minor issue with preprocessing *.sql.in via gcc (yuck), which can (temporarily) be worked-around by commenting out one line (@linenumber 91)

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

in the raster/rt_pg/Makefile.in file (prior to ./configure, of course)

like image 90
wildplasser Avatar answered Oct 11 '22 20:10

wildplasser