问题
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!
回答1:
- First: it is common to perform
./configure
andmake
as a plain user, and only doing the finalemake 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)
来源:https://stackoverflow.com/questions/8627653/installing-a-fully-functional-postgis-2-0-on-ubuntu-linux-geos-gdal-issues