库未加载:/usr/local/lib/libpq.5.4.dylib
-
14-11-2019 - |
题
我正在开发一个 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,可能会感兴趣另外两个案例:
- 您过去已经对 gem 版本进行了一些修剪
- 您的应用程序较旧,无法采用最新版本的 pg(我有一个 Rails 2 应用程序因 pg 0.17 而失败,几乎杀死了服务器:mkmr.log 呈指数增长...尝试 200GB!)
你实际上可能有很多版本的 pg 可供依赖
当你跑步时
gem uninstall pg
如果您有多个版本,系统会询问您要删除哪一个版本。但该列表可能对您有用!作为 awenkhh 答案的替代方案,您可以停在那里并将您的宝石重置为可接受的版本