Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未加载库:libpq.5.dylib_Ruby On Rails_Postgresql_Libpq - Fatal编程技术网

Ruby on rails 未加载库:libpq.5.dylib

Ruby on rails 未加载库:libpq.5.dylib,ruby-on-rails,postgresql,libpq,Ruby On Rails,Postgresql,Libpq,我有一个运行Ruby 1.9.2、Rails 3和postgreSQL 8.3的应用程序。它最初是使用postgreSQL 9.1安装的,但我卸载了9.1,安装并更改为8.3,以确保在Heroku共享数据库设置上的兼容性。它运行正常,但现在不是 现在,在使用此应用程序时,当我运行数据库升级时,会出现以下错误: dlopen(/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle, 9): Li

我有一个运行Ruby 1.9.2、Rails 3和postgreSQL 8.3的应用程序。它最初是使用postgreSQL 9.1安装的,但我卸载了9.1,安装并更改为8.3,以确保在Heroku共享数据库设置上的兼容性。它运行正常,但现在不是

现在,在使用此应用程序时,当我运行数据库升级时,会出现以下错误:

dlopen(/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle, 9): Library not loaded: libpq.5.dylib
  Referenced from: /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle
  Reason: no suitable image found.  Did find:
    /usr/lib/libpq.5.dylib: no matching architecture in universal wrapper - /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle
当我尝试运行服务器时,会收到以下错误消息:

/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg.rb:4:in `require': dlopen(/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle, 9): Library not loaded: libpq.5.dylib (LoadError)
  Referenced from: /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle
  Reason: no suitable image found.  Did find:
    /usr/lib/libpq.5.dylib: no matching architecture in universal wrapper - /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg.rb:4:in `<top (required)>'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
    from /Users/michaeljmccoy/www/mikemccoy/config/application.rb:7:in `<top (required)>'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:53:in `require'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:53:in `block in <top (required)>'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:50:in `tap'
    from /Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:50:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg.rb:4:in`require':dlopen(/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle,9):库未加载:libpq.5.dylib(加载错误)
引用自:/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle
原因:未找到合适的图像。确实发现:
/usr/lib/libpq.5.dylib:universalwrapper-/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg_ext.bundle中没有匹配的体系结构
from/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/pg-0.12.2/lib/pg.rb:4:in`'
来自/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in'require'
来自/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in'block(2层)in require'
来自/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in'each'
来自/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in'block in require'
来自/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in'each'
来自/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in'require'
来自/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler.rb:122:in'require'
from/Users/michaeljmccoy/www/mikemccoy/config/application.rb:7:in`'
from/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:53:in'require'
from/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:53:in'block in'
from/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:50:in'tap'
from/Users/michaeljmccoy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0.rc2/lib/rails/commands.rb:50:in`'
来自脚本/rails:6:in'require'
来自脚本/rails:6:in`'

我知道它们是非常相似的错误,可能与丢失的路径有关。但是,当我将路径添加到.profile文件并重新启动终端窗口时,会出现相同的错误。

您可能需要删除并重新安装
pg
gem,因此它是根据正确版本的Postgres编译的。

对于任何看到此错误并运行PostgresApp的人,这是版本9.2.4.3中修复的已知问题:

讨论:

安装程序:


当然,您可以获取最新版本()。这两个版本都让我重新启动并使用Rails 3.2.14和Ruby 2.0.0运行。但是,请注意,当我安装9.2.4.3时,我的数据库仍在psql中列出,但当我安装9.3.0(当前版本)时,我的数据库不再列出。

Your
PATH
控制shell查找可执行文件的位置。您的
LD\u LIBRARY\u路径
控制shell查找库的位置。也就是说,在我看来,您的pg gem是根据与您现在的版本不同的PostgreSQL库版本编译的。您可能只需要重新安装pg。我删除了当前的pg gem并尝试重新安装,但是我发现了一个关于缺少postgres库的常见错误。下面是我看到的:'检查pg_配置。。。是,使用/Library/PostgreSQL/8.3/bin/pg_config中的配置值检查libpq fe.h。。。是检查libpq/libpq fs.h。。。是检查pg_配置_手册。h。。。是正在-lpq中检查PQconnectdb()。。。没有检查-llibpq中的PQconnectdb()。。。没有检查-lms/libpq中的PQconnectdb()。。。不,找不到PostgreSQL客户端库(libpq)***extconf.rb失败***我记得在过去的某个时候必须解决这个问题,这相当于必须手动向gem builder提供标志来告诉它在哪里查找头和库,但我现在手头没有信息。hmmm。好的,我会考虑这样做。如果你碰巧遇到了你所做的事情,并愿意与他人分享,那就太好了。再次感谢你为我指明了正确的方向。非常感谢。如果您在Mac OS X Mavericks上遇到这个动态库问题,并且您正在使用PostgresApp,因此发现了这个问题,请在此处查看我对相关问题的回答:。基本上,我需要追溯到Postgres应用程序的9.2.2.0版本,才能让它正常工作。感谢@jhiro009为我指明了正确的方向-版本9.2.4.3对我来说在Mavericks上根本不起作用。如果这对你没有帮助,你可能想看看这个问题:这个解决方案也适用于Django,只需在virtualenv中重新安装psycopg2。