libssl和libcrypto导致dyld:库未加载:/usr/lib/libpq.5.dylib

时间:2012-11-30 10:33:52

标签: python postgresql pip psycopg2 libssl

我最近卸载了postgresql并通过pip安装了pyscopg2。

我知道libcrypto和libssl

涉及一些技巧

目前我将它们符号链接到:

$ ls -lah libssl.*
-rwxr-xr-x  1 root  wheel   402K Aug 28 11:06 libssl.0.9.7.dylib
-rwxr-xr-x  1 root  wheel   589K Aug 28 11:06 libssl.0.9.8.dylib
lrwxr-xr-x  1 root  wheel    55B Nov 29 23:38 libssl.1.0.0.dylib -> /usr/local/Cellar/openssl/1.0.1c/lib/libssl.1.0.0.dylib
lrwxr-xr-x  1 root  wheel    55B Nov 30 02:25 libssl.dylib -> /usr/local/Cellar/openssl/1.0.1c/lib/libssl.1.0.0.dylib

/usr/lib
$ ls -lah libcrypto.*
-rwxr-xr-x  1 root  wheel   2.1M Aug 28 11:06 libcrypto.0.9.7.dylib
-rwxr-xr-x  1 root  wheel   2.6M Aug 28 11:06 libcrypto.0.9.8.dylib
-r-xr-xr-x  1 root  wheel   1.6M Oct 31 22:12 libcrypto.1.0.0.dylib
lrwxr-xr-x  1 root  wheel    58B Nov 30 02:27 libcrypto.dylib -> /usr/local/Cellar/openssl/1.0.1c/lib/libcrypto.1.0.0.dylib

我通过端口安装openssl

现在当我运行arc diff时,我得到了臭名昭着的

$ arc diff
dyld: Library not loaded: /usr/lib/libpq.5.dylib
  Referenced from: /usr/bin/php
  Reason: image not found
Trace/BPT trap: 5

这里有一些答案,其中讨论了将这些库与符号链接到postgresql安装目录。显然,这对我不起作用。

我该怎么办?

3 个答案:

答案 0 :(得分:12)

结果显示/usr/lib/libpq.5.dylib不存在,但/usr/lib/libpq.5.4.dylib不存在。

sudo ln -s /usr/lib/libpq.5.4.dylib /usr/lib/libpq.5.dylib

解决了这个问题。

答案 1 :(得分:3)

与@Pablo Marambio不同,我通过在~/.profile添加以下行修复了此问题:

export DYLD_LIBRARY_PATH=/Library/PostgreSQL/9.3/lib:$DYLD_LIBRARY_PATH

对于Postgres.app v9.3.5.0(可能是其他人)我改为添加以下行:

export DYLD_LIBRARY_PATH=/Applications/Postgres.app/Contents/Versions/9.3/lib:$DYLD_LIBRARY_PATH

然后,当然,运行source ~/.profile

答案 2 :(得分:2)

要解决此问题,我必须卸载po​​stgresql,然后再次安装。

$ brew uninstall postgresql

$ brew update

$ brew install postgres