Probleme mit der $libdir auf PostgreSQL
Kurz, meine Frage ist "warum nicht $libdir auf meinem PSQL installation."
CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
AS '$libdir/liblwgeom', 'BOX2DFLOAT4_in'
LANGUAGE c IMMUTABLE STRICT;
ergibt einen Fehler
could not access file "$libdir/liblwgeom": No such file or directory
während
CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
AS '/usr/local/pgsql/lib/liblwgeom', 'BOX2DFLOAT4_in'
LANGUAGE c IMMUTABLE STRICT;
richtig funktioniert.
Die Ausgabe von
% pg_config --pkglibdir
/usr/local/pgsql/lib
richtig zu sein scheint.
Sollte dies funktionieren. Vielleicht sind Sie das mischen von verschiedenen Anlagen?
InformationsquelleAutor Joe Germuska | 2009-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kämpfte ich mich mit diesem Fehler auch. Ich löste es durch das einbinden der PostGIS-lib manuell auf die liblwgeom-Datei wie diese:
Ich habe keine Ahnung, warum PostGIS installiert sich in die "falsche" Verzeichnis, oder warum PostgreSQL sucht nach einer Datei namens
liblwgeom
wenn es scheint die gleiche Datei, die PostGIS nenntpostgis-1.5.so
Alles was ich weiß ist, dass das anscheinend behoben, mein problem.
ln -s /Library/PostgreSQL/9.1/lib/postgis-1.5.so /Library/PostgreSQL/9.1/lib/postgresql/postgis-1.5
für meine installationInformationsquelleAutor
Bearbeitet aus original-Antworten für es war falsch
Nun habe ich nachgeschaut postgresql-code, den ich muss zugeben, dass dieser string soll erweitert werden seit 2001 ;-). Die expansion ist sehr begrenzt, obwohl. Es erweitert nur
$libdir
gefolgt von der Verzeichnis-Trennzeichen. Noch, Ihre Ausgabe zeigt, dass der string war nicht ausgebaut, weil die gemeldete Zeichenfolge hier ist der string, der eigentlich zum laden der Bibliothek.Das bedeutet, dass die substitution failed. Betrachten wir es näher, ich kann sehen, dass die Erweiterung nur dann erfolgreich, wenn Ziel-Datei tatsächlich existiert. Vorausgesetzt, das Verzeichnis-Trennzeichen ist
/
undDLSUFFIX
ist.so
und die Datei/usr/local/pgsql/lib/liblwgeom.so
tatsächlich existiert, ich habe nicht die leiseste Ahnung, warum zum Teufel er ausfällt 😉Joe, deine Frage hat mich selbst überrascht, ich habe mich verändert die Antwort 😉
InformationsquelleAutor