1

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

最新バージョンのopensslをmacports経由でマシンにインストールしていますが、gemが何らかの理由で/ usr / libにインストールした古いバージョンを調べているようです(おそらく、@loader_pathの混乱と関係があります) ?)。

「opensslバージョン」は私に「OpenSSL1.0.1c2012年5月10日」を与えます

そして'whichopenssl'は私に'/opt / local / bin/openssl'を期待通りに与えます

どんな助けでも本当にありがたいです。ありがとう!

4

1 に答える 1

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

于 2012-08-20T01:08:42.097 に答える