Hallo liebes Forum,
ich versuche schon das gesamte Wochenende eine Applikation (pgrouting) zu installieren, ohne Erfolg
Folgendes: Auf meinem Debian Etch System habe ich aus dem Quellcode von postgresql-8.3.7.tar.gz PostgreSQL erfolgreich installiert, ebenfalls den räumlichen Aufsatz PostGIS (läuft alles wunderbar).
Ich möchte dort nun Funktionen für ein Routing einlesen.
Die Funktion sieht z.B. so aus:
Entscheidend ist $libdir/librouting.Code:CREATE OR REPLACE FUNCTION shortest_path(sql text, source_id integer, target_id integer, directed boolean, has_reverse_cost boolean) RETURNS SETOF path_result AS '$libdir/librouting' LANGUAGE 'C' IMMUTABLE STRICT;
Ich bekomme nach dem Einlesen immer wieder:
psql:/usr/share/postlbs/routing_core.sql:53: ERROR: could not access file "$libdir/librouting": Datei oder Verzeichnis nicht gefunden
Letztlich müssen zwei Bibliotheken gefunden werden:
librouting_dd.so
librouting.so
Diese Bibliotheken liegen in:
/home/anonymous/pgrouting/trunk/lib/librouting_dd.so
/home/anonymous/pgrouting/trunk/lib/librouting.so
/usr/lib/librouting_dd.so
/usr/lib/librouting.so
In der /etc/ld.so.conf.d steht auch:
Code:/lib/i486-linux-gnu /usr/lib/i486-linux-gnu /usr/lib /home/anonymous/CGAL-3.3.1 /usr/local/lib /usr/local /usr/local/pgsql/bin/pg_config /home/anonymous/pgrouting/lib /usr/local/pgsql/lib
Ein ldconfig wurde zudem ausgeführt. Kein Erfolg :-(
Ich frage mich nun: Wie finde ich heraus welcher Pfad in den SQL-Funktionen als $libdir erkannt wird?
Ich möchte versuchen das Problem statisch zu lösen (oder hat jemand noch eine andere Idee)?
Bin mit meinem Latein ziemlich am Ende.........
Danke im Voraus, Kai
Mein schlaues Buch sagt dafür:
Mit der ld.so.conf hat das ganze allerdings nichts zu tun. Dort würde ich übrigends niemals Verzeichnisse aus /home angeben, weil die dort gesuchten Bibliotheken von allen Programmen des Betriebssystems verwendet werden. Damit öffnest du einem Angreifer ein schönes Scheunentor.Code:pg_config --libdir
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Vielen Dank für die Antwort.
Das Problem konnte nun behoben werden, pg_config wurde hier nicht korrekt ausgeführt.
Es war zunächst ein
Code:export PATH="$PATH:/usr/local/pgsql/bin"
nötig (in dem Pfad liegt pg_config).
Danke nochmals, Kai
Nun, wer Software selbst nach /usr/local installiert, sollte auch wissen, dass und wie $PATH angepasst wird ;-)
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen