我正在使用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
是否存在。它没有。
因此,它应该存在于系统中的其他位置,或者我不知道,如果我需要为此安装任何其他软件。
有人建议吗?
答案 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,可能会感兴趣的另外两个案例:
你实际上可能有许多版本的pg依赖
当你跑
时gem uninstall pg
如果您有多个版本,系统将询问您要删除的版本。但该列表可能对您有用!作为awenkhh的答案的替代方案,您可以停在那里并将宝石重置为可接受的版本