2013-08-06 93 views
13

我在Mac上通过Homebrew安装了Postgis和Postgresql,并且我想将我的Postgis版本升级到2.1.0-rc2。我取消了我的postgis版本,然后编辑了postgis自制软件公式。新公式未编译后,我重新链接旧公式,每当我尝试使用空间列调用数据库表时,现在都会收到以下错误:Rails Postgis升级问题

PG::UndefinedFile: ERROR: could not load library 
"/usr/local/Cellar/postgresql/9.2.4/lib/postgis-2.0.so": 
dlopen(/usr/local/Cellar/postgresql/9.2.4/lib/postgis-2.0.so, 10): Symbol not found: 
_json_tokener_errors 
Referenced from: /usr/local/Cellar/postgresql/9.2.4/lib/postgis-2.0.so 
Expected in: /usr/local/lib/libjson.0.dylib 
in /usr/local/Cellar/postgresql/9.2.4/lib/postgis-2.0.so 

(我没有做上述动作之前这个问题)我已经重新启动我的PostgreSQL服务器,并没有奏效。我不确定如何解决这个问题。

回答

20

啊!通过恢复到自制软件链接的旧版json-c修复了这个问题。 (特别是json-c 0.10),就像下面的命令一样简单:

brew switch json-c 0.10 

希望别人在未来可能会发现它有用。

+1

永远不会想到这样做。非常感谢你! –

+0

最终,我不得不运行pg_upgrade指令,如下所示:http://blog.55minutes.com/2013/09/postgresql-93-brew-upgrade/ 问题是,当我运行'psql'时,它是9.3 .1,但服务器仍然是9.2.4。 –

+0

太棒了! Brew以某种方式升级了我的json,使我的postgis安装无用。所以我不得不升级,我想,但即使如此,最终导致这个错误,这个解决方案。唷,救生员:) – nathanvda