stryhのノート ~stryh/changelog

1.9

自分のWindowsマシーンにいい加減1.9を入れる。

で、自分のお決まりのDBアクセスを試みる。

あっさりエラー。

Ruby Issue Tracking Systemにバグなのかどうなのかで報告をしてみる。

レスポンスが早かった。深夜2時に報告してすぐ返答がきた。

事象は・・・

  • OS -> Windows XP SP2
  • Ruby -> ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32]
  • dbi -> 0.4.2
  • dbd-mysql -> 0.4.3
  • MySQL API module for Ruby -> 2.7.3
  • DB(MySQL) -> 5.1.34-community

上記の環境。

  • irbでの確認

1 require ‘dbi’

2 dbh = DBI.connect(‘DBI:mysql:[DB名]:[ホスト名]’,'[user]’,'[poasswd]’)

[]は読み替えてください。

1の箇所ではtrueが返ってきます。

2を実行すると以下のダイアログが表示されます。

「msvcrt-ruby18.dllが見つからなかったため、このアプリケーションを開始できませんでした。

アプリケーションをし直すとこの問題は解決される場合があります。」

トレースは・・・

DBI::InterfaceError: Could not load driver (Could not find driver mysql or mysql (error: 126: 指定されたモジュールが見つかりません。 – RUBY_HOME/lib/ruby/gems/1.9.1/gems/mysql-2.7.3-x86-mswin32/ext/mysql.so))

from RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:318:in `rescue in load_driver’

from RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:242:in `load_driver’

from RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:160:in `_get_full_driver’

from RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:145:in `connect’

from (irb):4

from RUBY_HOME/bin/irb.bat:20:in `<main>’

RUBY_HOMEは読み替えてください。

  • Rubyプログラム

RUBY_HOME/lib/ruby/gems/1.9.1/gems/mysql-2.7.3-x86-mswin32/ext/mysql.so: [BUG] Segmentation fault

ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32]

    • control frame ———-

c:0013 p:-4484100 s:0060 b:0060 l:000059 d:000059 TOP

c:0012 p:—- s:0058 b:0058 l:000057 d:000057 CFUNC :require

c:0011 p:0062 s:0054 b:0054 l:000053 d:000053 TOP RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbd/Mysql.rb:39

c:0010 p:—- s:0051 b:0051 l:000050 d:000050 FINISH

c:0009 p:—- s:0049 b:0049 l:000048 d:000048 CFUNC :require

c:0008 p:0084 s:0045 b:0045 l:000030 d:000044 BLOCK RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:251

c:0007 p:0019 s:0034 b:0034 l:000033 d:000033 METHOD RUBY_HOME/lib/ruby/1.9.1/monitor.rb:190

c:0006 p:0012 s:0031 b:0031 l:000030 d:000030 METHOD RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:242

c:0005 p:0031 s:0027 b:0027 l:000026 d:000026 METHOD RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:160

c:0004 p:0022 s:0020 b:0020 l:000019 d:000019 METHOD RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:145

c:0003 p:0035 s:0009 b:0009 l:0005a4 d:001470 EVAL db_conectDBI_mysql.rb:5

c:0002 p:—- s:0004 b:0004 l:000003 d:000003 FINISH

c:0001 p:0000 s:0002 b:0002 l:0005a4 d:0005a4 TOP <main>:33

—————————

    • Ruby level backtrace information—————————————–

RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbd/Mysql.rb:39:in `require’

RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbd/Mysql.rb:39:in `<top (required)>’

RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:251:in `require’

RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:251:in `block in load_driver’

RUBY_HOME/lib/ruby/1.9.1/monitor.rb:190:in `mon_synchronize’

RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:242:in `load_driver’

RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:160:in `_get_full_driver’

RUBY_HOME/lib/ruby/site_ruby/1.9.1/dbi.rb:145:in `connect’

db_conectDBI_mysql.rb:5:in `<main>’

[NOTE]

You may encounter a bug of Ruby interpreter. Bug reports are welcome.

For details: http://www.ruby-lang.org/bugreport.html

This application has requested the Runtime to terminate it in an unusual way.

Please contact the application’s support team for more information.

RUBY_HOMEは読み替えてください。

こんな感じで報告。

でRubyDevからの返答

Ruby1.9.1用のライブラリがOSのパッケージマネージャで入れられるようになるには、おそらくもうしばらくかかるでしょう。それまではRuby1.8.7を使うか、rubygemsから入れるか、自分でビルドしてください。

だそうです。

しかし、マニュアルビルドをすればいいんではないかと。

これに関しては未実施。

なんで未実施かというとこれについて今質問中。

URL :
TRACKBACK URL :

Leave a reply

*
*
* (公開されません)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Return Top