2013-04-28 17 views
6

Ho aggiornato e reinstallato PostGIS & PostgreSQL su OS X Mountain Lion. Quando si tenta di utilizzare le estensioni PostGIS, ricevo il seguente errore:PostGIS Installazione homebrew che fa riferimento a un percorso precedente?

ERROR: could not open extension control file "/usr/local/Cellar/postgresql/ 
9.2.3/share/postgresql/extension/postgis.control": No such file or directory 

Sembra che PostGIS (e PostgreSQL così ??) sono ancora alla ricerca per i file necessari nella directory /postgresql/9.2.3/ e non nella directory /postgresql/9.2.4/ . Ho usato Homebrew per rimuovere tutte le versioni precedenti di PostgreSQL tramite il seguente comando:

brew remove --force postgresql 

Qualcuno potrebbe per favore mi punto nella giusta direzione sul motivo per cui si verifica questo problema? (Ci deve essere un file di configurazione persistente da qualche parte o qualcosa del genere?)

Qualsiasi aiuto sarà molto apprezzato.

risposta

1

Il design di Homebrew è in genere lasciare file di configurazione modificabili dall'utente e file di dati generati in posizione durante uno remove o upgrade, in modo da essere conservati tra le versioni. Sembra che tu abbia ragione ed è un file di configurazione lasciato da qualche parte.

Non ci sono file di configurazione globali per postgres in /usr/local/etc. Quindi probabilmente sono file di dati dell'utente. Hai creato dei database usando la versione precedente di postgres e usa l'estensione postgis in loro? I file di configurazione in quei database potrebbero riferirsi a quella vecchia versione di Postgres. Questi database sono in genere sotto /usr/local/var/postgres. Dai un'occhiata ai file .conf qui sotto e vedi se puoi modificarli per correggere il percorso dell'estensione o ricreare i database.

12

Il problema è che si dispone di un server psql in esecuzione sulla versione 9.2.3 del codebase. Per verificare questo, caricare una console psql e si dovrebbe vedere questo in cima:

psql (9.2.4, server 9.2.3) 
Type "help" for help. 

nota il commento "server 9.2.3" di cui sopra. Se si sta eseguendo la versione corretta del server, si dovrebbe vedere questo, invece:

psql (9.2.4) 
Type "help" for help. 

Per risolvere questo problema, basta seguire le istruzioni fornite dal brew info postgresql il carico e scarico della LaunchAgent - questo si riavvierà il server con il nuovo codice:

To reload postgresql after an upgrade: 
    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
+0

risolto per me! Grazie – bantic

+0

grazie mille – rurabe

1

ho appena incontrato questo esattamente lo stesso problema e, dopo queste soluzioni non lo ha risolto, ho trovato uno dei miei:

brew uninstall postgis && brew install postgis 

La chiave di questo lavoro si è distinto per me in uscita di generazione per PostGIS:

==> ./configure --with-projdir=/usr/local --with-jsondir=/usr/local/opt/json-c --with-pgconfig=/usr/local/Cellar/postgresql/9.4.4/bin/pg_config --disable-nls 

Nota che usa il pg_config, molto probabilmente al fine di determinare dove deve memorizzare tutti i file necessari per l'estensione.

0

Nel terminale, ho eseguito

$ psql 

In psql, mi ha mostrato questo

> psql (9.6.3, server 9.5.7) 
> Type "help" for help. 

ho cercato di eseguire il seguente

> CREATE EXTENSION postgis; 

e ottenuto questo messaggio di errore

> ERROR: could not open extension control file "/usr/local/Cellar/[email protected]/9.5.7/share/[email protected]/extension/postgis.control": No such file or directory 

ho smesso psql da

> \q 

E poi corse

$ brew services list 

Che poi è tornato con i seguenti risultati

Name   Status User  Plist 
mysql   stopped   
[email protected]  stopped   
postgresql  stopped   
[email protected] started doquyena /Users/doquyena/Library/LaunchAgents/[email protected] 
redis   stopped 

ho lavorato che il mio psql era in esecuzione su un server psql incompatibile, quindi l'ho corretto con il seguente comando

$ brew services stop [email protected] 
$ brew services start postgresql 

Quando sono tornato in psql

$ psql 

E ora visualizzato questo che indica che ero ormai sul server corrispondente

> psql (9.6.3) 
> Type "help" for help. 

Quindi, non vi era alcun messaggio di errore quando ho poi provato per creare nuovamente l'estensione

> CREATE EXTENSION postgis; 

E poi io w come in grado di creare tabelle di dati postgis come questo senza problemi

> CREATE TABLE s_test(geom geometry); 
Problemi correlati