安装pg gem之后,当我尝试在本地计算机上启动服务器时出现此错误:
/Users/foo/.rvm/gems/ree-1.8.7-2011.12/gems/pg-0.14.0/lib/pg_ext.bundle: dlopen(/Users/foo/.rvm/gems/ree-1.8.7-2011.12/gems/pg-0.14.0/lib/pg_ext.bundle, 9): Library not loaded: @loader_path/../lib/libssl.dylib (LoadError)
Referenced from: /usr/lib/libpq.5.dylib
Reason: Incompatible library version: libpq.5.dylib requires version 1.0.0 or later, but libssl.dylib provides version 0.9.8 - /Users/foo/.rvm/gems/ree-1.8.7-2011.12/gems/pg-0.14.0/lib/pg_ext.bundle
我通过macports在我的机器上安装了最新版本的openssl,但看起来gem正在查看我在/ usr / lib中安装的旧版本出于某种原因(可能与搞乱有关) @loader_path?)。
'openssl version'给我'OpenSSL 1.0.1c 2012年5月10日'
和'哪个openssl'给我'/ opt / local / bin / openssl'正如我预期的那样
非常感谢任何帮助。谢谢!
答案 0 :(得分:2)
我在更新到Mountain Lion后遇到了这个问题。在检查我有一个合适的OpenSSL版本后,我做了以下几点。
$ ls /Library/PostgreSQL/9.1/lib/libssl*
提供以下内容:
/Library/PostgreSQL/9.1/lib/libssl.1.0.0.dylib
/Library/PostgreSQL/9.1/lib/libssl.dylib
/Library/PostgreSQL/9.1/lib/libssl.a
我将文件复制为:
$ sudo cp /Library/PostgreSQL/9.1/lib/libssl.1.0.0.dylib /usr/lib/
然后链接:
$ cd /usr/lib
$ ln -sf libssl.1.0.0.dylib libssl.dylib
之后,我再次尝试了rails s
,同样的错误出现了另一个文件,所以我重复了这个过程(libcrypto
):
requires version 1.0.0 or later, but libcrypto.0.9.8.dylib
provides version 0.9.8
这样:
$ sudo cp /Library/PostgreSQL/9.1/lib/libcrypto.1.0.0.dylib /usr/lib/
$ cd /usr/lib
$ ln -sf libcrypto.1.0.0.dylib libcrypto.dylib
请参阅此问题的答案以供参考: python pip install psycopg2 install error