Подтвердить что ты не робот

Библиотека не загружена:/usr/local/lib/libpq.5.4.dylib во время работы rake db: create

Я работаю над приложением rails.
Установлен Postgresql, используя postgresql-9.1.2-1-osx.dmg
Установленный жемчуг pg.
Затем, когда я выполнил rake db:create получив следующую ошибку -

dlopen (/Users/sathishvc/.rvm/gems/[email protected]/gems/pg-0.12.2/lib/pg_ext.bundle, 9): библиотека не загружена:/usr/local/lib/libpq.5.4.dylib

Проверено, существует ли /usr/local/lib/libpq.5.4.dylib или нет. Это не так. Таким образом, он должен существовать где-то еще в системе или я не знаю, если мне нужно установить для этого какую-либо другую часть программного обеспечения.

Посоветуйте кого угодно?

4b9b3361

Ответ 1

Через некоторое время после того, как я разместил этот вопрос, я обнаружил, что 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.

Тогда это решило проблему.

Ответ 2

если вы обновили PostgreSQL с помощью homebrew (brew update && brew upgrade), просто удалите pg gem:

gem uninstall pg
bundle install

и путь будет исправлен для вас. Не нужно удалять весь кластер PostgreSQL.

Ответ 3

Я столкнулся с этой проблемой после перехода на PostgresApp и удаления существующей версии PostgreSQL с помощью

brew remove postgres

В конечном итоге я решил проблему путем повторной установки PostgreSQL через

brew install postgres

Мне удалось сохранить использование PostgresApp, добавив следующее в мой .bash_profile

export PATH="/Applications/Postgres.app/Contents/MacOS/bin:/usr/local/bin:$PATH"

Вы также можете попробовать:

brew doctor

Как он предупредил меня об этом, а также о некоторых дополнительных ошибках.

Эта ошибка также влияла на мою способность использовать драгоценный камень Paperclip, поскольку это вызывало ошибку ImageMagick с той же ошибкой.

(с использованием OS X 10.8.2)

Ответ 4

В моем случае удаление/переустановка 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. Я использую RVM, Ruby 2.0.0, pg gem 0.17.0, в Mac OS X 10.6.

Ответ 5

Попробуйте brew prune, а затем переустановите

Ответ 6

это не прямой ответ на вопрос, но может часто возникать

Два дополнительных случая, которые могут представлять интерес, если вы обновили PostgreSQL с помощью homebrew:

  • Вы уже в прошлом относились к некоторой обрезке версий gem.
  • ваше приложение старше и не может взять последнюю версию pg (у меня есть приложение rails 2 с ошибкой 0.17 и почти убивает сервер: mkmr.log увеличивается экспоненциально... попробуйте 200GB!)

у вас может быть множество версий pg, на которые можно положиться

при запуске

gem uninstall pg

Если у вас несколько версий, система спросит, какую версию вы хотите удалить. Но этот список может быть вам полезен! В качестве альтернативы awenkhh ответ вы можете остановиться там и reset ваши драгоценные камни до приемлемой версии