Ergebnis 1 bis 4 von 4

Thema: $libdir in SQL-Funktion wird nicht gefunden

  1. #1
    Kai-Behncke ist offline Benutzer
    Registriert seit
    07.01.2008
    Beiträge
    45

    Standard $libdir in SQL-Funktion wird nicht gefunden

    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:

    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;
    Entscheidend ist $libdir/librouting.

    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

  2. #2
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Mein schlaues Buch sagt dafür:
    Code:
    pg_config --libdir
    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.
    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

  3. #3
    Kai-Behncke ist offline Benutzer
    Registriert seit
    07.01.2008
    Beiträge
    45

    Standard

    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

  4. #4
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum