Почему rake прерывается из-за libpq.5.dylib

Я только что установил PostgreSQL и гем pg для запуска Rails на Heroku. я бегу

$ rake -T

Но это прерывается по причине, связанной с «libpq.5.dylib».

rake aborted!
dlopen(/Library/Ruby/Gems/1.8/gems/pg-0.13.2/lib/pg_ext.bundle, 9): Library not loaded: libpq.5.dylib
Referenced from: /Library/Ruby/Gems/1.8/gems/pg-0.13.2/lib/pg_ext.bundle
Reason: image not found - /Library/Ruby/Gems/1.8/gems/pg-0.13.2/lib/pg_ext.bundle

Что дает?

Как загрузить библиотеку libpq.5.dylib?


person jwilsco    schedule 23.06.2012    source источник


Ответы (2)


Я на Mac. Вот что я сделал, чтобы заставить его работать.

cd /Library/Ruby/Gems/1.8/gems/pg-0.13.2/lib/
otool -L pg_ext.bundle

libpq.5.dylib (compatibility version 5.0.0, current version 5.4.0)

Обратите внимание, что libpq.5.dylib не использует абсолютный путь, как другие библиотеки в pg_ext.bundle. Система не может его найти. Вам нужно изменить, где он ищет libpq.5.dylib.

install_name_tool -change libpq.5.dylib /Library/PostgreSQL/9.1/lib/libpq.5.dylib pg_ext.bundle

Примечание. Используйте абсолютный путь, применимый к вашей системе. Я использовал то, что было для моей системы.

Теперь запустите:

otool -L pg_ext.bundle

Обратите внимание, на что теперь указывает libpq.5.dylib:

/Library/PostgreSQL/9.1/lib/libpq.5.dylib (compatibility version 5.0.0, current version 5.4.0)

Драгоценный камень pg теперь должен быть счастлив.

person Jared Brown    schedule 10.11.2012
comment
Вот еще один подход, который может сработать, если вы столкнулись с этой проблемой: stackoverflow.com/questions/24627465/ - person Jan Hettich; 09.07.2014

Из обсуждения здесь кажется, что источником проблемы является компиляция pg 64-битного Ruby с 32-битным Postgresql. Таким образом, единственный способ решить эту проблему — установить 64-битный Postgresql, а затем переустановить pg.

Это сообщение подробно объясняет проблему.

person meandre    schedule 03.11.2012