PostGIS错误 - PG :: InternalError:错误:无法加载库

时间:2015-11-03 05:18:30

标签: ruby-on-rails macos postgresql ruby-on-rails-4 postgis

StandardError: An error has occurred, this and all later migrations canceled:

PG::InternalError: ERROR:  could not load library "/usr/local/Cellar/postgresql/9.4.5/lib/postgis-2.1.so": dlopen(/usr/local/Cellar/postgresql/9.4.5/lib/postgis-2.1.so, 10): Symbol not found: __ZN5boost7archive21basic_binary_iarchiveINS0_15binary_iarchiveEE13load_overrideERNS0_15class_name_typeEi
  Referenced from: /usr/local/lib/libSFCGAL.1.dylib
  Expected in: /usr/local/lib/libboost_serialization-mt.dylib
 in /usr/local/lib/libSFCGAL.1.dylib
: CREATE EXTENSION IF NOT EXISTS "postgis"/Users/harshamv/Sites/clink/db/migrate/20150812164615_enable_postgis.rb:3:in `change'
-e:1:in `<main>'
ActiveRecord::StatementInvalid: PG::InternalError: ERROR:  could not load library "/usr/local/Cellar/postgresql/9.4.5/lib/postgis-2.1.so": dlopen(/usr/local/Cellar/postgresql/9.4.5/lib/postgis-2.1.so, 10): Symbol not found: __ZN5boost7archive21basic_binary_iarchiveINS0_15binary_iarchiveEE13load_overrideERNS0_15class_name_typeEi
  Referenced from: /usr/local/lib/libSFCGAL.1.dylib
  Expected in: /usr/local/lib/libboost_serialization-mt.dylib
 in /usr/local/lib/libSFCGAL.1.dylib
: CREATE EXTENSION IF NOT EXISTS "postgis"
/Users/harshamv/Sites/clink/db/migrate/20150812164615_enable_postgis.rb:3:in `change'
-e:1:in `<main>'
PG::InternalError: ERROR:  could not load library "/usr/local/Cellar/postgresql/9.4.5/lib/postgis-2.1.so": dlopen(/usr/local/Cellar/postgresql/9.4.5/lib/postgis-2.1.so, 10): Symbol not found: __ZN5boost7archive21basic_binary_iarchiveINS0_15binary_iarchiveEE13load_overrideERNS0_15class_name_typeEi
  Referenced from: /usr/local/lib/libSFCGAL.1.dylib
  Expected in: /usr/local/lib/libboost_serialization-mt.dylib
 in /usr/local/lib/libSFCGAL.1.dylib
/Users/harshamv/Sites/clink/db/migrate/20150812164615_enable_postgis.rb:3:in `change'
-e:1:in `<main>'

当我试图删除并重新创建我的Rails-PostgreSQL

时突然出现上述错误

5 个答案:

答案 0 :(得分:12)

您最近可能已升级了boost / brew update的{​​{1}}自制软件公式,似乎最新版本与brew upgrade的效果不佳。

我修复了一个非常类似的问题,回到之前版本的postgis

boost

更新:现在已经在Homebrew中修复了,下面的答案建议进行简单的更新/升级可能是要走的路。如果之前 切换,您现在可以brew switch boost 1.58.0升级到最新版本的brew switch boost 1.59.0,您可能还必须boost

答案 1 :(得分:5)

issue has been fixed here。重新安装,它应该工作。

    $ brew update && upgrade
    $ brew install postgis

答案 2 :(得分:3)

无法找到1.58.0,但1.55.0_1可用并成功为我安装了postgis。 effectifstackoverflow中的这些条目非常有用。这个过程可能有额外的步骤。

只是为了确定:

$ brew uninstall postgis

点击自制版本,如果还没有:

$ brew tap homebrew/versions

找到最新的:

$ brew search boost
...
homebrew/versions/boost155
...
$ brew install homebrew/versions/boost155

这会在不同的公式(boost155)下安装boost。为了能够切换版本,我将旧版本符号链接到boost目录:

$ ln -s /usr/local/Cellar/boost155/1.55.0_1 /usr/local/Cellar/boost/1.55.0_1 

在此之后它照常营业:

$ brew switch boost 1.55.0_1
$ brew install postgis

答案 3 :(得分:2)

如果您需要安装特定版本的公式,请查看以下主题:

Homebrew: install specific version of formula

答案 4 :(得分:2)

我也遇到了这个问题,boost版本1.56.0可用,并为我解决了这个问题。看起来这个问题特别适用于1.58.0。