由于我在第一次尝试时获得任何正确的经验,我有点紧张在终端中弄乱任何东西。这就是我要问的原因。
我正在尝试使用全新安装的OSX Mavericks来运行shp2pgsql。我已经使用PostGIS 2.1安装了Postgres 9.3 v2.1.0-2。
我得到的错误是:
dyld: Library not loaded: @loader_path/../lib/libintl.8.dylib
Referenced from: /Library/PostgreSQL/9.3/bin/shp2pgsql
Reason: image not found
Trace/BPT trap: 5
我看过了
http://librelist.com/browser//homebrew/2013/5/15/missing-dylib-files/#85200742c00af0a239140b02f860d987表明brew install gettext
。这已安装libintl.8.dylib
at:
/usr/local/Cellar/gettext/0.18.3.1/lib/libintl.8.dylib
我找到了一些关于如何创建符号(?)链接的资源,但是我不确定这是否是适当的解决方案,甚至在shp2pgsql
引用的特定情况下如何执行此操作:
@loader_path/../lib/libintl.8.dylib
谢谢!
-Nicholas
答案 0 :(得分:0)
您必须重新编译shp2pgsql
程序。在升级系统和库时,您现在必须将程序重新编译为这些新库。
答案 1 :(得分:0)
“加载程序”为/Library/PostgreSQL/9.3/bin/shp2pgsql
。这使得dyld的@loader_path
概念等于/Library/PostgreSQL/9.3/bin
。将其替换为库引用会将@loader_path/../lib/libintl.8.dylib
转换为/Library/PostgreSQL/9.3/bin/../lib/libintl.8.dylib
。简化一下,我们得到/Library/PostgreSQL/9.3/lib/libintl.8.dylib
。这就是Postgres显然希望找到libintl
库的地方。
如果不存在,则表明Postgres安装已损坏。无论谁提供它,你都必须接受它。
可能你可以通过设置dyld环境变量来解决这个问题。例如,您可以在调用Postgres之前尝试export DYLD_LIBRARY_PATH=/usr/local/lib
。但是,这会导致Postgres使用与链接的库不同的库,但不能保证工作。