2012-06-23 34 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 –

相關問題