2011-12-25 57 views
5

我一直在努力讓ubuntu-maverick-amd64 linux服務器上運行postgis 2.0大約一週。我正在尋求柵格和拓撲支持。在Ubuntu Linux上安裝功能齊全的PostGIS 2.0 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 

我設法運行make和sudo的製作與舊(和無用的新功能)版本@中和GEOS的安裝。因此,我猜測問題在於我安裝了GEOS或GDAL。我的linux版本沒有3.3.1可下載的軟件包,所以我必須從源代碼構建,我可能會搞砸了,因爲我不習慣這樣做,儘管我遵循website提供的指導並下載了tarfile。除了cd到目錄配置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製作的。但我覺得我可能需要做的更多。

我對此感到非常沮喪,因爲我覺得我非常接近,但是在我不知道該做什麼的時候不斷碰到難以逾越的障礙。

我將不勝感激任何人可以幫助解決這些公然的錯誤,並幫助我導航這真正地獄般的安裝過程!我會願意卸載所有內容並從頭開始,但我實際上並不知道如何卸載geos,因爲我必須從源代碼構建它們而不是apt-get!

我也是新來的linux(我終於想出瞭如何讓我的Windows筆記本電腦安裝postgis 2.0),所以請儘可能描述。

在此先感謝,因爲這一直是我的頭痛!

+1

你可能就在這過的http://gis.stackexchange.com/更多的幫助(運行./configure,當然之前)。在那裏已經有不少關於PostGIS 2.0的PostGIS Q/A了。 – RyanDalton 2011-12-26 06:23:27

回答

4
  • 第一:是很常見的執行./configuremake和作爲普通用戶,並僅做壓軸make install作爲用戶根。 (這將避免構建目錄受到擁有奇怪所有權的文件污染)
  • 第二:您打算構建的postgis-2.0是仍在開發中的版本。你應該總是期望(小)構建錯誤。
  • 第三:(好消息),我設法得到它編譯,但我首先要配置&構建&安裝
    • GEOS-3.3.1
    • 凸出-4.7.0
    • JSON-C -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 

有一個小問題與預處理*通過GCC(呸).sql.in,它可以(暫時)被註釋掉一行(@linenumber 91)工作,圍繞

## SQL objects deps here # comment out next line... 
#$(SQL_OBJS): ../../postgis/sqldefines.h 
在光柵/ rt_pg/Makefile.in文件

+0

謝謝,這非常有幫助!一個問題:postgis文檔指出--prefix參數當前被破壞,所以它只能安裝到postgres目錄。如果將postgis安裝到其自己的目錄,那麼在將postgis sql函數添加到數據庫時它仍然可以正常運行? 另外,假設我想卸載postgis及其所有依賴項。我可以刪除每個依賴關係的opt/{program}文件夾來完成這個任務嗎?還是有更多的必須完成? – THX1138 2011-12-27 17:41:04

+0

我不知道安裝到postgres子樹中是否已經修復爲2.0;可能。刪除WRT:有一些腳本可以從目錄中刪除postgis擴展,在.../share或.../contrib,IIRC中。最健壯的是刪除或重命名所有安裝目錄,然後開始配置&編譯和從頭開始安裝postgres。 – wildplasser 2011-12-28 10:52:31