0

私はこの問題でここ数日苦労しており、アイデアがありません。SQL Server のサポートを追加する必要がある、やや古いアプリケーションに取り組んでいます。ローカルで動作させることができました (Ubuntu 12.04) が、Ubuntu 8.04 インスタンスの Rackspace で再現しようとすると、次のエラーが発生します。

irb > require 'rubygems'
irb > require 'tiny_tds'
irb > TinyTds::Client.new(:host => 'X.X.X.X', :user name => 'xxx', :password => 'xxx')
irb: symbol lookup error: /opt/ruby-enterprise-1.8.7-2012.02/lib/ruby/gems/1.8/gems/tiny_tds-0.6.0.rc1/lib/tiny_tds/tiny_tds.so: undefined symbol: dbsetluser

私が実行しているスタックは次のとおりです。

  • Ubuntu 8.04
  • リー 1.8.7-2012.02
  • FreeTDS 0.92.377 (ソースからコンパイル)
  • TinyTDS 0.6.0.rc1 (0.5.1も試しました)

isql を使用して SQL Server に正常に接続できるので、FreeTDS と ODBC が正しく設定されていると思います。しかし、Ruby から TinyTds に接続しようとすると、上記のエラーが発生します。

rails-sqlserver-adapter の Google グループに投稿しようとしましたが、フォーラムはモデレートされているようで、私の質問はまだ表示されていません。

TinyTdsがライブラリを見つけられないことに関係していると確信していますが(どこかで利用できるはずです)、これを達成する方法がわかりません。

最後の手段として、12.04 でサーバーをゼロから構築するつもりですが、既存のシステムを動作させたいと考えています。

更新

@Casperの提案に従って、接続を試みましodbcたが、別のエラーが発生しました

irb > require ‘odbc’
irb > ODBC.connect('dsn', 'username', 'password')
[unixODBC][FreeTDS][SQL Server]Unable to connect to data source`

isql と sqsh に正常に接続できますが。

ありがとう

4

1 に答える 1

0

それはすべて環境変数に関係していました。freetds と odbc をインストールした後、 と の環境変数FREETDSCONFODBCINIRubyODBCSYSINIで使用できなくなったようです。.bashrcPassengerにそれらを表示させるには、ユーザーと/etc/profileApache構成にそれらを追加する必要がありました(を使用SetEnv)。

これが将来誰かに役立つことを願っています。

于 2014-04-17T21:22:32.780 に答える