Библиотека не загружена: libpq.5.dylib - PullRequest
18 голосов
/ 07 февраля 2012

У меня есть приложение под управлением 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>'

Я знаю, что это очень похожие ошибки и, вероятно, связано с отсутствующим путем.Однако, когда я добавляю путь к своему файлу .profile и перезагружаю окно терминала, я получаю те же ошибки.

Ответы [ 2 ]

35 голосов
/ 08 февраля 2012

Возможно, вам придется удалить и переустановить гем pg, чтобы он компилировался с верной версией Postgres.

4 голосов
/ 21 октября 2013

Для тех, кто видит эту ошибку и работает PostgresApp, это известная проблема, которая была исправлена ​​в версии 9.2.4.3:

Обсуждение: https://github.com/PostgresApp/PostgresApp/issues/109

Установщик: https://github.com/PostgresApp/PostgresApp/releases/tag/9.2.4.3

Конечно, вы можете просто взять последнюю версию (http://postgresapp.com/). Обе версии вернули меня к работе с Rails 3.2.14 и Ruby 2.0.0. Однако обратите внимание, что когда я установил 9.2.4.3мои базы данных все еще были перечислены в psql, но когда я установил 9.3.0 (текущую версию на данный момент), мои базы данных больше не были перечислены.

...