INTERN (0) [RubyODBC]Cannot allocate SQLHENV

とか言って接続できません。すげー困ってました。

The only thing that worked was 0.9995-1 from the archives. I’m not sure if it has ever been done but the best way to fix this regression might be to use the older version.

LaunchPadではこう言っていて、僕もまったくその通りに思うので微妙なんですけど、hardy(!)のlibodbc-ruby1.8(0.9995-1)を入れることで解決しました。

(※ 一応、Ruby-ODBCの公式から0.9995を落としてコンパイルしても、同じエラーが出ました。。)

1
2
wget http://kr.archive.ubuntu.com/ubuntu/pool/universe/libo/libodbc-ruby/libodbc-ruby1.8_0.9995-1_amd64.deb
sudo dpkg -i libodbc-ruby1.8_0.9995-1_amd64.deb

aptitudeで入れるunixodbc(-dev)や、gemのdbi、dbd-odbcには関係のないバグのようなので、その辺は普通に入れていいと思います。

あと、selectできることを確認しただけだったりするので。。。複雑なことをしようとするとやっぱり落ちるかも。

* * *

そうそう、Ruby Enterprise Editionなら何の問題なく、最新版で接続できた、なんて情報が上記LaunchPadにはあります。僕は試してないですけど(環境が出来上がってる状態で、Ruby自体を切り替えるのは大変……)。