2012-06-23 5 views
3

Я только что установил PostgreSQL и стр камня для запуска Rails на Heroku. Я бегПочему грабли прерывания из libpq.5.dylib

$ 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?

ответ

1

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

This post подробно объясняет проблему.

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 не использует абсолютный путь, как и другие LIBS в 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) 

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

+0

Вот еще один подход, который может работать, если вы столкнулись с этой проблемой: http://stackoverflow.com/questions/24627465/ruby-pg-gem-linking-to-wrong-copy-of-libpq-5- dylib-на-OSX –

 Смежные вопросы

  • Нет связанных вопросов^_^