我一直在尝试使用ruby 1.8.6连接到Mac OS X雪豹上的MS SQL Server 2005,遵循此处的指南http://wiki.rubyonrails.org/database-support/ms-sql。我已经安装了Ruby ODBC Bindings,dbi和dbd-odbc gems和ruby是从源代码编译的。
如果我在irb中运行, DBI.connect('dbi:ODBC:A_DSN','USERNAME','PWD'), 红宝石过程无限期地挂起。
我已经使用gdb来查看挂起的进程,它被卡在semaphore_wait_signal_trap
上。
如果我编译ruby 1.8.7并以相同的方式安装odbc绑定一切正常,那么我不确定在雪豹中编译绑定是否存在问题。在升级到雪豹之前,我能够在OS X 10.5和ruby 1.8.6上运行它。
感谢任何可以脱光的光!
答案 0 :(得分:1)
这看起来与此问题相同:http://www.ruby-forum.com/topic/196606
我正试图为自己排序这个,所以如果我取得任何进展,我会告诉你。
...
我认为我已接近解决方案,但您可能需要在编译之前修补1.8.6源代码树。看看dln.c似乎1.8.6使用了弃用的目标文件图像函数NSLinkModule等而不是dlopen。我敢打赌,10.6中dyld的优化在某种程度上破坏了向后兼容性。因此,我打算修补我的1.8.6安装以使用dlopen,看看是否能解决问题。
...
是的,将dln.c的变化从1.8.7反向移动到1.8.6修复了RMagick的加载问题所以我敢打赌它也能解决你的问题。