Не удается заставить работать привязки Ruby ODBC в версии 1.8.6, скомпилированной на снежном барсе - PullRequest
1 голос
/ 10 октября 2009

Я пытался получить ruby ​​1.8.6 для подключения к MS SQL Server 2005 в Mac OS X, снежный барс, следуя приведенному здесь руководству http://wiki.rubyonrails.org/database-support/ms-sql. Я установил привязки Ruby ODBC и dbi и dbd- odbc gems и ruby ​​были скомпилированы из исходного кода.

Если я запускаю это в irb, DBI.connect ('dbi: ODBC: A_DSN', 'USERNAME', 'PWD'), процесс ruby ​​просто зависает бесконечно.

Я использовал gdb, чтобы посмотреть на зависший процесс, и он завис на semaphore_wait_signal_trap.

Если я скомпилирую ruby ​​1.8.7 и установлю привязки odbc таким же образом, все будет нормально, поэтому я не уверен, является ли проблема компиляцией привязок в снежном барсе или нет. Я смог заставить его работать на OS X 10.5 и ruby ​​1.8.6 перед обновлением до снежного барса.

Спасибо за любой свет, который можно пролить!

1 Ответ

1 голос
/ 11 октября 2009

Это похоже на ту же проблему: http://www.ruby -forum.com / topic / 196606

Я пытаюсь разобраться в этом для себя, поэтому сообщу, доберусь ли я прогресса.

...

Я думаю, что я подхожу к решению, но вам, вероятно, придется исправить свое исходное дерево 1.8.6 перед компиляцией. Глядя на dln.c, кажется, что 1.8.6 использует устаревшие функции изображения объектного файла NSLinkModule и т. Д., А не dlopen. Держу пари, что оптимизация для dyld в 10.6 в некоторой степени нарушила обратную совместимость. Поэтому я собираюсь исправить мою установку 1.8.6, чтобы использовать dlopen, и посмотреть, решит ли это проблему.

...

Да, обратный перенос изменений dln.c с 1.8.7 на 1.8.6 устраняет проблему загрузки с RMagick, поэтому я готов поспорить, что это также решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...