Библиотека не загружена:/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
или нет. Это не так.
Таким образом, он должен существовать где-то еще в системе или я не знаю, если мне нужно установить для этого какую-либо другую часть программного обеспечения.
Посоветуйте кого угодно?
Ответы
Ответ 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 ваши драгоценные камни до приемлемой версии