未加载库:/usr/local/lib/libpq.5.4.dylib

时间:2012-01-26 18:40:54

标签: ruby-on-rails-3.1 libreadline

我正在使用rails应用程序。
使用postgresql-9.1.2-1-osx.dmg安装Postgresql 已安装pg gem。
然后我执行rake db:create 收到以下错误 -

  

的dlopen(/Users/sathishvc/.rvm/gems/ruby-1.9.3-head@knome-vivacious/gems/pg-0.12.2/lib/pg_ext.bundle,   9):未加载库:/usr/local/lib/libpq.5.4.dylib

检查/usr/local/lib/libpq.5.4.dylib是否存在。它没有。
因此,它应该存在于系统中的其他位置,或者我不知道,如果我需要为此安装任何其他软件。

有人建议吗?

6 个答案:

答案 0 :(得分:63)

如果您已经使用自制软件升级PostgreSQL(brew update&&< brew upgrade),那么只需卸载pg gem:

gem uninstall pg
bundle install

将为您修正路径。无需卸载整个PostgreSQL集群。

答案 1 :(得分:5)

切换到PostgresApp并通过

删除现有的PostgreSQL版本后,我遇到了这个问题
brew remove postgres

我最终通过

重新安装PostgreSQL解决了这个问题
brew install postgres

我可以通过在我的.bash_profile中添加以下内容来保留PostgresApp的使用

export PATH="/Applications/Postgres.app/Contents/MacOS/bin:/usr/local/bin:$PATH"

您也可以尝试运行:

brew doctor

因为它提醒我这个以及一些额外的错误。

此错误也影响了我使用Paperclip gem的能力,因为它导致ImageMagick失败并出现相同的错误。

(使用OS X 10.8.2)

答案 2 :(得分:3)

我发布此问题后的一段时间,我发现libpq.5.4.dylib位于/Library/PostgreSQL/9.1/lib/ 所以,我创建了以下链接:
lrwxr-xr-x 1 sathishvc admin 43 Jan 28 23:40 /usr/local/lib/libpq.5.4.dylib -> /Library/PostgreSQL/9.1/lib/libpq.5.4.dylib

这解决了问题。

答案 3 :(得分:2)

就我而言,卸载/重新安装gem并没有帮助。但我在$DYLD_LIBRARY_PATH

中添加了~/.bash_profile环境变量的PostgreSQL库路径
export DYLD_LIBRARY_PATH=/Library/PostgreSQL/9.3/lib:$DYLD_LIBRARY_PATH

如果您还安装了MySQL,此行可能如下所示:

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:/Library/PostgreSQL/9.3/lib:$DYLD_LIBRARY_PATH

当然要注意PostgreSQL路径中的版本号,在撰写本文时它是9.3。 我在Mac OS X 10.6上使用RVM,Ruby 2.0.0,pg gem 0.17.0。

答案 4 :(得分:1)

尝试brew prune,然后重新安装

答案 5 :(得分:1)

这不是问题的直接答案,但可能经常出现

如果您使用自制程序升级PostgreSQL,可能会感兴趣的另外两个案例:

  1. 你过去曾进行过一些宝石版本的修剪
  2. 您的应用程序较旧且无法获取最新版本的pg(我有一个rails 2应用程序失败,pg 0.17并且差点杀死服务器:mkmr.log以指数方式增加...尝试200GB!)
  3. 你实际上可能有许多版本的pg依赖

    当你跑

    gem uninstall pg
    

    如果您有多个版本,系统将询问您要删除的版本。但该列表可能对您有用!作为awenkhh的答案的替代方案,您可以停在那里并将宝石重置为可接受的版本