2011年8月 8日

[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 <eiichi_maekawa@xxxxx>:
>
> 前川です。
>
> ということは、[ruby-list:48255]も同じ原因ですか?
>
> 現状では、Ruby192p290,Ruby187p352の最新のバージョンでは、MySQLは、使えない
> と言うことですか?
>
> "Y. Nobuoka" <nobuoka@xxxxx> 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)


投稿者 xml-rpc : 2011年8月 8日 09:38
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/105535
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。