2012-06-23 29 views
3

我刚刚安装了PostgreSQLpg gem用于在Heroku上运行Rails。我跑为什么rake因libpq.5.dylib而中止

$ 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库?

回答

1

从好像编译64位红宝石的PG针对讨论here32位的Postgresql是问题的根源。 因此解决它的唯一方法是安装64位Postgresql,然后重新安装pg

This post详细解释了这个问题。

2

我在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) 

Pg的宝石应该是幸福的吧。

+0

这里的另一种方法,如果你遇到了这个问题,可能工作:http://stackoverflow.com/questions/24627465/ruby-pg-gem-linking-to-wrong-copy-of-libpq-5- dylib-ON-OSX –

相关问题