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

问题描述 投票:40回答:6

我正在开发一个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是否存在。它不是。 因此,它应该存在于系统中的其他位置,或者我不知道,如果我需要为此安装任何其他软件。

有人建议吗?

ruby-on-rails-3.1 libreadline
6个回答
63
投票

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

gem uninstall pg
bundle install

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


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)


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

这解决了问题。


2
投票

在我的情况下,卸载/重新安装gem没有帮助。但我在我的$DYLD_LIBRARY_PATH中添加了PostgreSQL库路径到~/.bash_profile环境变量:

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。


1
投票

尝试brew prune然后重新安装


1
投票

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

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

  1. 你过去一直在修剪宝石版本
  2. 你的应用程序是旧的,不能采用最新版本的pg(我有一个rails 2应用程序失败,pg 0.17并几乎查杀服务器:mkmr.log以指数方式增加...尝试200GB!)

你可能实际上有许多版本的pg可以依赖

当你跑步

gem uninstall pg

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

© www.soinside.com 2019 - 2024. All rights reserved.