Установщик EnterpriseDB для PostgreSQL 9.3 помещает свои файлы в /Library/PostgreSQL/9.3/* на Mac OSX. Тем не менее, Ruby gem "pg" загружает устаревшую версию динамической библиотеки "C" libpq.5.dylib из /usr/lib вместо правильной версии из /Library/PostgreSQL/9.3/lib. Это происходит, несмотря на то, что я установил драгоценный камень с помощью
gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config
Я определил, какая версия libpq.5.dylib загружается установкой переменной окружения DYLD_PRINT_LIBRARIES, перед тем, как требовать жемчуг 'pg'.
Наиболее очевидным следствием связывания с неправильной динамической библиотекой является то, что gem не может подключиться к базе данных с помощью сокета домена, поскольку сокет был перемещен между версиями от /var/pgsql_socket до /tmp. Однако ссылка на старую библиотеку также может вызывать другие проблемы.
Любые предложения по устранению этой проблемы?
(Я запускаю Mac OSX Lion. Примечание: для большинства pg-библиотек установщик EnterpriseDB ставит статическую (.a) и динамическую (.dylib) версию в /Library/PostgreSQL/9.3/lib, но только для libpq.5 динамическая версия.)