2009-10-09 6 views
1

J'ai essayé d'obtenir ruby ​​1.8.6 pour se connecter à un MS Snowboard Microsoft SQL Server 2005 sur Mac OS X suivant le guide ici http://wiki.rubyonrails.org/database-support/ms-sql. J'ai installé les Ruby ODBC Bindings et les gems dbi et dbd-odbc et ruby ​​a été compilé depuis la source.Impossible d'obtenir les bindings Ruby ODBC à travailler dans 1.8.6 compilé sur snow léopard

Si je lance ceci dans RIR, DBI.connect (DBI: ODBC: A_DSN ', 'USERNAME', 'PWD'), le processus rubis se bloque juste indéfiniment.

J'ai utilisé gdb pour observer le processus bloqué et il est bloqué sur semaphore_wait_signal_trap.

Si je compile ruby ​​1.8.7 et installe les bindings odbc de la même manière, tout fonctionne bien, donc je ne suis pas sûr que ce soit un problème avec la compilation des bindings dans Snow Leopard ou non. J'ai été capable de faire fonctionner cela sur OS X 10.5 et ruby ​​1.8.6 avant de passer au snow léopard.

Merci pour toute lumière qui peut être dissipée!

Répondre

1

Cela ressemble à la même question que celle-ci: http://www.ruby-forum.com/topic/196606

Je suis en train de trier celui-ci pour moi-même donc je vais vous laisser savoir si je fais des progrès.

...

Je pense que je suis en train de près d'une solution, mais vous aurez probablement patcher votre arbre source 1.8.6 avant de compiler. En regardant dln.c, il semble que 1.8.6 utilise les fonctions d'image de fichier objet obsolètes NSLinkModule, etc. plutôt que dlopen. Je parie que les optimisations pour dyld dans 10.6 ont cassé la rétrocompatibilité en quelque sorte. Par conséquent, j'ai l'intention de patcher mon installation 1.8.6 pour utiliser dlopen et voir si cela résout le problème.

...

Eh oui, rétroportage les changements dln.c de 1.8.7 à 1.8.6 corrige le problème de charge avec RMagick donc je serais prêt à parier que ce serait aussi résoudre votre problème.

+0

Merci! Backporting dln.c a également fonctionné pour moi. – calstad

Questions connexes