PostGIS in der fgs-dev Umgebung kompilieren

Aus kvwmap
Version vom 29. Oktober 2007, 09:54 Uhr von Pkorduan (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Kompilieren eines benutzerdefinierten Modules für fgs am Beispiel postgis

Ist irgendein Modul für fgs nicht so konfiguriert, wie man es braucht, dann muss man sich das Modul selber erzeugen. Dazu nutzt man fgs-dev, siehe:

http://www.maptools.org/fgs/index.phtml?page=fgs-sandbox.html

und

http://wiki.osgeo.org/index.php/FGSDevNotes

fgs-dev kann man sich mit dem folgenden Befehl auf seinen Rechner ziehen:

$cvs -d :pserver:cvsanon@cvs.maptools.org:/cvs/maptools/cvsroot checkout fgs-dev

In dem Ordner, wo man den Befehl ausführt, wird der Ordner fgs-dev mit den benötigten Daten angelegt. Ähnlich wie bei fgs setzt man zunächst ein paar Umgebungsvariablem mit dem setenv.sh Skript. Bevor das Skript ausgeführt wird muss man natürlich die Variablen darin korrekt setzen, z.B. FGS_DEV_HOME auf /opt/fgs-dev:

$source setenv.sh

Hinterher prüfen mit:

$echo $FGS_DEV_HOME

Als nächstes legt man sich eine Liste an mit den Modulen, die man selber kompilieren möchte.

$fgsdev custom_build_list create postgis-lib

Mit diesem Befehl wird die Datei build_list in fgs-dev erzeugt. Sie enthält den Modulnamen postgis-lib und alle, die davon abhängig sind. In unserem Beispiel: libstdc:: proj:: postgresql:: geos:: postgis:: Wenn man jetzt

$fgsdev build_all

startet, werden alle Resourcen runtergeladen jeweils nach $FGS_DEV_HOME/src kompiliert und installiert. Dabei kann man erstmal Kaffee trinken gehn, denn für postgresql und vor allem geos dauert das eine Weile.

Mit der Postgis-Version 1.0.6 wird es höchstwahrscheinlich am Ende Fehler geben. Da haut was mit dem Parameter --enable-autoconf nicht hin. Ist aber nicht schlimm, denn alle anderen Module hat er richtig kompiliert und Postgis wollten wir ja sowieso noch anpassen. Ich habe mit 1.0.6 lange rumprobiert, aber das configure Script läuft schon nicht richtig durch und wenn dann kommen beim make noch Fehler. Also habe ich gleich auf die PostGIS Version 1.3.1 gesetzt.

Man läd postgis-1.3.1.tar.gz von http://www.postgis.org/download/ und entpackt nach $FGS_DEV_HOME/src. Dann erzeugt man in dem Verzeichnis symbolische Links, die auf $FGS_DEV_HOME/pkg_def/postgis/fgs_build und ...fgs_install zeigen z.B. mit:

ln -s /opt/fgs-dev/pkg_def/postgis/fgs_build fgs_build
ln -s /opt/fgs-dev/pkg_def/postgis/fgs_install fgs_install

Diese kann man dann in $FGS_DEV_HOME/src/postgis-1.3.1 ausführen.

Die Module, die in $FGS_DEV_HOME/modules entstehen, kann man dann nach $FGS_HOME entpacken. In unserem Fall habe ich gelernt mindestens postgis und geos. Soweit erstmal das neue Modul.

Um das neue PostGIS Modul nutzen zu können, muss man jetzt leider noch mal die Datenbank neu anlegen. Denn die Funktionen in Postgis zeigen auf die alte Version.

Am Ende sollte dann bei SELECT postgis_version(); 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1 rauskommen und transform() funktionieren.