From: "Y. Nobuoka" Date: 2011-08-08T09:38:54+09:00 Subject: [ruby-list:48266] Re: require 'dbi' の警告について 前川さん > ということは、[ruby-list:48255]も同じ原因ですか? いえ、Deprecated という名前の衝突が起きていますが、定数への再代入は警告が出るものの 後から代入したほうで上書きされるため、現状ではそれが原因で DBI, DBD-Mysql が使えなく なるわけではありません。 Windows 環境には詳しくないため [ruby-list:48255] の 原因はわからないのですが、Deprecated の名前衝突が原因ではないはずです。 > 現状では、Ruby192p290,Ruby187p352の最新のバージョンでは、MySQLは、使えない > と言うことですか? ちょっと環境が違うのでなんともいえませんが、以下のような構成で試してみたところ ちゃんと ruby 1.9.2-p290 で DBI / DBD-Mysql を使って MySQL サーバーに接続できました。 + Ubuntu 10.04 (64-bit) + MySQL 5.1.41 + Ruby 1.9.2-p290 ++ rubygems 1.8.7 ++ dbi (gem) 0.4.5 ++ dbd-mysql (gem) 0.4.4 ++ deprecated (gem) 2.0.1 ++ mysql (gem) 2.8.1 [ruby-list:48255] のエラーメッセージを見た感じですと 「MySQL の driver (DBD-Mysql のこと?) が見つからない」 というエラーのようですので、DBI がどうやって DBD-Mysql を探しているのか を調べていけば原因がわかるのではないかなぁ、と思います。 (自信はありませんが) DBI / DBD-Mysql に詳しくないのであまり役に立つことを言えずすみません。 2011年8月8日8:15 : > > 前川です。 > > ということは、[ruby-list:48255]も同じ原因ですか? > > 現状では、Ruby192p290,Ruby187p352の最新のバージョンでは、MySQLは、使えない > と言うことですか? > > "Y. Nobuoka" wrote on 2011/08/05 18:22:35: > >> 信岡です。 >> >> 解決策はわからないのですが、原因だけ。 >> >> > /usr/local/rvm/gems/ruby-1.9.2-p290/gems/deprecated-2.0. >> 1/lib/deprecated.rb:199: >> > warning: already initialized constant Deprecate >> >> という警告が出るとのことですが、これは読んだとおり >> 「deprecated という gem のコード中で Deprecate という定数に代入をしている > が >> その定数は既に別の場所で初期化されている」 >> という警告です。 (定数に 2 回以上代入しようとすると警告が出る) >> >> で、その別の場所というのがどこかという問題ですが、rubygems そのものに >> Deprecate というモジュールがある [1] ようなので、多分それだと思います。 >> どう解決するのがいいのかはちょっとわかりません。 >> 名前が衝突しているので、どちらかの名前を変えるしかないんじゃないかと >> 思いますが。。 >> >> [1] http://rubygems.rubyforge.org/rubygems-update/Deprecate.html >> -- 信岡 ゆう (NOBUOKA Yu)