我正在开发一个 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-vivacion/gems/pg-0.12.2/lib/pg_ext.bundle,9):库未加载:/usr/local/lib/libpq.5.4.dylib

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

请给任何人建议吗?

有帮助吗?

解决方案 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.

这解决了当时的问题。

其他提示

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

gem uninstall pg
bundle install

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

在切换到 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)

就我而言,卸载/重新安装 gem 没有帮助。但我添加了 PostgreSQL 库路径 $DYLD_LIBRARY_PATH 我的环境变量 ~/.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。

尝试 brew prune 然后重新安装

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

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

  1. 您过去已经对 gem 版本进行了一些修剪
  2. 您的应用程序较旧,无法采用最新版本的 pg(我有一个 Rails 2 应用程序因 pg 0.17 而失败,几乎杀死了服务器:mkmr.log 呈指数增长...尝试 200GB!)

你实际上可能有很多版本的 pg 可供依赖

当你跑步时

gem uninstall pg

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top