2014-05-18 5 views
7

Ich habe gerade Postgres 9.3.4 und PostGIS 2.1 auf OSX Mavericks mit den neuesten Versionen von KyngChaos libraries installiert.PostGIS mit Postgres verwenden: "FEHLER: Erweiterungssteuerdatei konnte nicht geöffnet werden"

aber wenn ich versuche, auf eine Datenbank räumliche Erweiterungen zu erstellen, kann ich nicht, weil Postgres behauptet, nicht in der Lage zu sein, die Erweiterungsdatei zu sehen:

:~ anna$ psql -d land -c "CREATE EXTENSION postgis;" 
ERROR: could not open extension control file 
"/usr/local/Cellar/postgresql/9.3.4/share/postgresql/extension/postgis.control": 
No such file or directory 

Es sieht aus, als ob sich die Datei befindet woanders:

:~ anna$ mdfind postgis.control 
/usr/local/pgsql-9.3/share/extension/postgis.control 

ich verwende auf jeden Fall die erwartete Version von Postgres, obwohl ich weiß nicht, ob dies in dem die Bibliotheken in der Regel KyngChaos ist installieren:

Annas-MacBook-Air:~ anna$ psql --version 
psql (PostgreSQL) 9.3.4 
Annas-MacBook-Air:~ anna$ which psql 
/usr/local/pgsql-9.3/bin/psql 

Ich war ziemlich vorsichtig, Postgres nicht mit Homebrew etc zu installieren, weil ich weiß, dass es Probleme mit mehreren Versionen des gleichen Systems verursachen kann.

Kann jemand beraten, warum die Erweiterungsdatei nicht am erwarteten Ort ist?


UPDATE:

Es sieht aus wie vielleicht gibt es mehrere Versionen von Postgres Umlauf auf meinem System, und ich bin die falsche Verwendung?

:~ anna$ mdfind -name "postgres" | grep -G "postgres$" 
/usr/local/pgsql-9.3/bin/postgres 
/usr/local/var/postgres 
/usr/local/Cellar/postgresql/9.3.4/bin/postgres 

Welchen sollte ich verwenden, und wie kann ich das System so einstellen, dass es standardmäßig verwendet wird?


WEITERE UPDATE

Hier ist die Ausgabe von pg_config:

BINDIR = /usr/local/pgsql-9.3/bin 
DOCDIR = /usr/local/pgsql-9.3/share/doc 
INCLUDEDIR = /usr/local/pgsql-9.3/include 
PKGINCLUDEDIR = /usr/local/pgsql-9.3/include 
INCLUDEDIR-SERVER = /usr/local/pgsql-9.3/include/server 
LIBDIR = /usr/local/pgsql-9.3/lib 
PKGLIBDIR = /usr/local/pgsql-9.3/lib 
LOCALEDIR = 
MANDIR = /usr/local/pgsql-9.3/man 
SHAREDIR = /usr/local/pgsql-9.3/share 
SYSCONFDIR = /usr/local/pgsql-9.3/etc 
PGXS = /usr/local/pgsql-9.3/lib/pgxs/src/makefiles/pgxs.mk 
CONFIGURE = '--with-openssl' '--with-pam' '--with-krb5' '--with-gssapi' '--with-ldap' '--enable-thread-safety' '--with-bonjour' '--with-python' '--without-perl' '--enable-nls' '--with-libxml' 'CC=clang' 'CXX=clang++' 'CFLAGS=-Os -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -D_FILE_OFFSET_BITS=64' 'LD=clang' 'LDLFAGS=-arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk' 
CC = gcc 
CPPFLAGS = -I/usr/include/libxml2 
CFLAGS = -Os -arch x86_64 -D_FILE_OFFSET_BITS=64 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv 
CFLAGS_SL = 
LDFLAGS = -arch x86_64 -Wl,-dead_strip_dylibs 
LDFLAGS_SL = 
LIBS = -lintl -liconv -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -ledit -lz 
VERSION = PostgreSQL 9.3.4 
+0

Es scheint seltsam, dass die Stammverzeichnisse der Installation nicht identisch sind. Immerhin ist postGIS eine "Erweiterung" von postgreSQL. – MickyInTheSky

+0

Mögliches Duplikat von [UUID kann nicht verwendet und eine Erweiterung erstellt werden, um es zu verwenden] (http://stackoverflow.com/questions/20810921/cant-use-uuid-and-create-an-extension-to-use-it) –

Antwort

-1

Sie versuchen, diesen Befehl verwenden können:

sudo apt-get install postgresql-contrib-9.3 
+4

Ich benutze OSX ... – Richard

0

Sie müssen auch postgis- installieren Skripte wie in der folgenden enthalten, die das gleiche Problem für mich gelöst: StackOverflow Answer

0

Was (schließlich) gelöst war es für mich postgis deinstallieren und installieren Sie es erneut aus http://postgresapp.com/.

Sie müssen den Postgres-Server stoppen und von der App aus neu starten.

0

Suche ein wenig um ich this GIST gefunden, wo Benutzer jordanmkoncz eine Lösung für OSX gibt:

  1. Verwenden Homebrew PostGIS zu installieren.
  2. Sie müssen vorsichtig sein, denn brew installiert die neueste verfügbare Version von PostGIS, die möglicherweise nicht mit Ihrer speziellen Version von PostgreSQL kompatibel ist.Hier ist a compatibility table für Ihre Bequemlichkeit. Homebrew install specific version of formula? für die Installation von spec

    Ich hatte das gleiche Problem mit Linux Mint (Ubuntu wie):


Um eine bestimmte Version von PostGIS (oder irgendeine andere Formel) jordnmkoncz empfiehlt mit dieser Methode zu installieren was ich danach löse gis.stackexchange thread.