2011-12-25 4 views
5

Я работаю над тем, чтобы получать postgis 2.0 и работать на Linux-сервере ubuntu-maverick-amd64 уже около недели. Я собираюсь использовать растровую и топологическую поддержку.Установка полностью функционального PostGIS 2.0 на проблемы Ubuntu Linux GEOS/GDAL

Я использовал следующие настройки для:

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

Файл конфигурации ниже описывает свои функции.

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 

мне удалось запустить сделать и Sudo сделать установку с более старыми (и бесполезными для новых функций) версиями GDAL и GEOS. Таким образом, я предполагаю, что проблемы связаны с моей установкой GEOS или GDAL. Для моей версии Linux нет 3.3.1 загружаемого пакета, поэтому мне пришлось строить из исходного кода, и я, вероятно, испортил это, поскольку я не привык к этому, хотя я следил за указаниями, указанными на website, и загрузил tarfile. Я не отклонялся от инструкций, отличных от cd-ing, в каталог, чтобы настроить make и install. Я сделал все, что явным образом заявил, что должен делать. Я не получил сообщение, что он построен правильно, когда я построил его, так что я думаю, что-то пошло не так, как я получил следующие ошибки ближе к концу моей неудачной 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 

модуль JSON-C был также проблема, поскольку все, что они говорят, чтобы сделать с ней, - это разобрать ее и /.configure. но я чувствую, что, вероятно, больше того, что мне нужно делать.

Я действительно расстраиваюсь этим, так как чувствую, что я так близко, но продолжаю сталкиваться с непреодолимыми препятствиями, где я не знаю, что делать.

Я бы очень признателен всем, кто может помочь исправить эти вопиющие ошибки и помочь мне перевести этот по-настоящему адский процесс установки! Я бы хотел удалить все и начать с самого начала, хотя я действительно не знаю, как удалить геообъекты, потому что мне пришлось строить их из источника, а не apt-get!

Я также новичок в Linux (я, наконец, только что понял, как получить postgis 2.0, установленный на моем ноутбуке Windows!), Поэтому, пожалуйста, будьте как можно более наглядными.

Заранее спасибо, поскольку для меня это была огромная головная боль!

+1

Вы можете получить помощь по этому, по меньшей http://gis.stackexchange.com/. В PostGIS 2.0 уже есть несколько PostGIS Q/A. – RyanDalton

ответ

4
  • Во-первых: он является общим для выполнения ./configure и make как обычный пользователь, и только делает финал make install как корень пользователя. (это приведет к тому, что каталог сборки не будет загрязнен файлами со странным владением)
  • second: postgis-2.0, который вы собираетесь строить, является версией, все еще находящейся в разработке. Вы всегда должны ожидать (незначительные) ошибки сборки.
  • третий: (хорошая новость) мне удалось получить это компилируется, но сначала я должен был настроить & сборки & установки
    • GEOS-3.3.1
    • проектируемый-4.7.0
    • JSON-с -0,9
    • GDAL-1.8.1

GEOS-2.0SVN впоследствии был построен с:

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 

Был один второстепенный вопрос с предварительной обработки * .sql.in с помощью GCC (YUCK), который может (временно) работаться вокруг, комментируя одну линию (@linenumber 91)

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

в растровом/rt_pg/Makefile.in файла (до ./configure, конечно)

+0

Спасибо, это очень полезно! Один вопрос: в документации postgis указано, что параметр -prefix в настоящее время поврежден, поэтому он может быть установлен только в каталог postgres. Если вы устанавливаете postgis в свой собственный каталог, он все еще функционирует правильно, когда вы добавляете функции postgis sql в базу данных? Кроме того, скажем, я хочу удалить postgis и все его зависимости. Могу ли я просто удалить папку opt/{program} для каждой зависимости, чтобы выполнить это, или есть еще что нужно сделать? – THX1138

+0

Я не знаю, была ли установлена ​​установка в подзаголовках postgres в версии 2.0; может быть. Удаление WRT: Есть несколько сценариев для удаления расширений postgis из каталогов, где-то в .../share или .../contrib, IIRC. Наиболее надежным является удаление или переименование всех каталогов установки, а затем начать настройку и компиляцию и установку postgres с нуля. – wildplasser