3

Heroku で Rails を実行するために、 PostgreSQLpg gem をインストールしました。私は走っています

$ rake -T

しかし、「libpq.5.dylib」に関連する理由で中止しています

rake aborted!
dlopen(/Library/Ruby/Gems/1.8/gems/pg-0.13.2/lib/pg_ext.bundle, 9): Library not loaded: libpq.5.dylib
Referenced from: /Library/Ruby/Gems/1.8/gems/pg-0.13.2/lib/pg_ext.bundle
Reason: image not found - /Library/Ruby/Gems/1.8/gems/pg-0.13.2/lib/pg_ext.bundle

何を与える?

libpq.5.dylib ライブラリをロードするにはどうすればよいですか?

4

2 に答える 2

4

私はMacを使用しています。これが私がそれを機能させるためにしたことです。

cd /Library/Ruby/Gems/1.8/gems/pg-0.13.2/lib/
otool -L pg_ext.bundle

libpq.5.dylib (compatibility version 5.0.0, current version 5.4.0)

libpq.5.dylibは、pg_ext.bundleの他のライブラリのように絶対パスを使用しないことに注意してください。システムはそれを見つけることができません。libpq.5.dylibを探す場所を変更する必要があります。

install_name_tool -change libpq.5.dylib /Library/PostgreSQL/9.1/lib/libpq.5.dylib pg_ext.bundle

注:システムに適用される絶対パスを使用してください。私はそれが私のシステムにあったものを使用しました。

今実行します:

otool -L pg_ext.bundle

libpq.5.dylibが今指していることに注意してください。

/Library/PostgreSQL/9.1/lib/libpq.5.dylib (compatibility version 5.0.0, current version 5.4.0)

pggemは今幸せになるはずです。

于 2012-11-10T20:17:39.113 に答える
1

ここでの議論から、64 ビットの Rubyの pg を32 ビットの Postgresqlに対してコンパイルすることが問題の原因であるように思われます。したがって、これを解決する唯一の方法は、64 ビット Postgresql をインストールしてから を再インストールすることpgです。

この投稿では、この問題について詳しく説明しています。

于 2012-11-03T20:56:26.267 に答える