2013-04-28 19 views
6

Yükseltilmiş ve sonradan OS X Mountain Lion üzerinde PostGIS & PostgreSQL'i yeniden yükledim.PostGIS Homebrew, eski bir yola referans veriyor mu?

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

O PostGIS (ve PostgreSQL yanı ??) hala /postgresql/9.2.3/ dizininde gerekli dosyalar arıyoruz anlaşılmaktadır değil /postgresql/9.2.4/ dizinde: PostGIS uzantılarını kullanmaya çalışırken, ben şu hata alırsınız .

brew remove --force postgresql 

birisi neden bu sorun oluşup için doğru yönde bana gelin misiniz: Ben şu komutları PostgreSQL önceki tüm sürümlerini kaldırmak için Homebrew kullandık? (Bir yerde veya başka bir yerde kalıcı bir yapılandırma dosyası olmalı?)

Herhangi bir yardım çok takdir edilecektir.

cevap

1

Homebrew'ın tasarımı genellikle kullanıcı tarafından düzenlenebilir yapılandırma dosyalarını ve oluşturulan veri dosyalarını remove veya upgrade sırasında yerinde bırakmaktır, bu nedenle sürümler arasında korunurlar. Sanki haklısın gibi görünüyor ve bir yere bırakılmış bir yapılandırma dosyası.

/usr/local/etc içinde postgre'ler için genel yapılandırma dosyası bulunmamaktadır. Yani muhtemelen kullanıcı veri dosyaları. Postgres'in önceki sürümünü kullanarak herhangi bir veritabanı oluşturdunuz ve postgis uzantısını onların içinde kullandınız mı? Bu veritabanlarındaki yapılandırma dosyaları o eski postgres sürümüne başvurabilir. Bu veritabanları tipik olarak /usr/local/var/postgres'un altındadır. Oradaki .conf dosyalarına bir göz atın ve uzantı yolunu düzeltmek veya veritabanlarını yeniden oluşturmak için bunları düzenleyip düzenleyemeyeceğinizi görün.

12

Sorun, kod tabanının 9.2.3 sürümünde çalışan bir psql sunucunuz var. Bu test bir psql'in konsolu yüklemek ve için üst kısımda bu görmelisiniz: "Sunucu 9.2.3" yorum Yukarıdaki

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

Not. Eğer sunucunun doğru sürümünü çalıştırıyorsanız, bunun yerine bu görecekti:

psql (9.2.4) 
Type "help" for help. 

Bunu düzeltmek için, sadece boşaltma üzerinde brew info postgresql tarafından verilen ve LaunchAgent yükleme talimatları takip - bununla sunucuyu yeniden başlayacaktır yeni kod:

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

Benim için tamir! Teşekkür ederim – bantic

+0

çok teşekkür ederim – rurabe

1

sadece bu aynı sorunla karşılaştım ve bu çözümler sorunu çözmedi sonra, benim kendi biri bulundu:

brew uninstall postgis && brew install postgis 

Bu çalışma için anahtar PostGIS için inşa çıktı bana çarpıyordu: o uzatılması için gerekli tüm dosyaları depolamak gerekiyor yeri belirlemek amacıyla pg_config, büyük olasılıkla kullanan

==> ./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 

Not söyledi.

0

terminali olarak, psql'in olarak

$ psql 

ran, bu

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

aşağıdaki

> CREATE EXTENSION postgis; 

kaçmaya çalıştı bana gösterdi ve bu hata mesajını aldım

> 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 

Ben

> \q 

tarafından psql'i çıkmak Sonra sonra tekrar benim psql'in bir çalışan olduğunu çalışmış aşağıdaki sonuçlarla

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

birlikte gelen

$ brew services list 

ran uyumsuz psql sunucusu bu yüzden aşağıdaki komutla düzeltildi

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

Ben Artık Sonra çalıştığında hiçbir hata mesajı vardı

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

Dolayısıyla eşleşen bir sunucuda şimdi olduğunu gösterir ki bu görüntülenen

$ psql 

geri psql'in gittiğimde uzantıyı yeniden oluşturmak için Ve sonra gibi herhangi bir sorun olmadan postgis veri tabloları oluşturmak mümkün olarak

> CREATE TABLE s_test(geom geometry); 
İlgili konular