Ruby 2.0.0p0 IRB警告:「DLは非推奨です。Fiddleを使用してください」


196

Rubyの古いバージョンをアンインストールし、すべてのgem(Railsを含む)を削除して、Ruby 2.0をインストールしました。つまり、完全にクリーンな再インストールです。IRBを開始すると、次のメッセージが表示されました。

DLは非推奨です。Fiddleを使用してください

注:私はWindowsマシンを使用しています。

このメッセージはどういう意味ですか?


2
~/.irbrcファイルの内容は何ですか?
トッドA.ジェイコブス

2
無知ですが、このファイルはどこにありますか?
fbonetti 2013年

1
@CodeGnome @effbotがWindowsマシン上にあることに注意してください。私が見ることができるものから、Windowsには.irbrcデフォルトではありません。
Charles Caldwell

2
warnあなたが取得しているが、ファイル「Ruby200 \ libに\ルビー\ 2.0.0 \ dl.rb」から来ています。irbまたはを起動したときにも取得しますpry
Charles Caldwell

14
これはそのようにひどく書かれたメッセージです。DLとは?フィドルとは?なぜ変更する必要があるのですか?どうすれば変更できますか?
大佐パニック

回答:


208

受け取ったメッセージはruby 2.0.0p0 (2013-02-24)Windowsを使用している場合によく見られます。

メッセージ「DL is deprecated, please use Fiddleはエラーではありません。これは単なる警告です。

ソースは、先ほど紹介したDLの非推奨通知ですdl.rbrevisions / 37910を参照)。

Windowsではlib/ruby/site_ruby/2.0.0/readline.rbファイルがまだ必要なdl.rbので、警告メッセージ表示されますrequire 'irb'(irbが必要なため'readline')、または他のものが必要な場合require 'readline'

readline.rbお気に入りのテキストエディターで開いてコードを検索できます(行4369付近)。

    if RUBY_VERSION < '1.9.1'
      require 'Win32API'
    else
      require 'dl'
      class Win32API
        DLL = {}

Rubyの将来のリリースでこの非推奨を解決するための改善をいつでも期待できます。

編集:Fiddle vs DLについてさらに詳しく知りたい場合は、目的が外部ライブラリとRubyを動的にリンクすることであると言ってください。ruby-doc WebサイトでDLまたはFiddleについて読むことができます。


@webRat投稿を再編集してください。私はあなたに同意します、rbrealine.rbはコミュニティによる間違った(おそらく)Editによって導入されました。ご清聴ありがとうございました!
フランコロンディーニ2013

1
これらはすべて、満足のいくものではありません。とにかく、以下のMsangleからのコメント「フィドルとは何ですか?」に注意してください。
意志

1
@Paul、答えの最後の2行には、おそらく見たことがない2つのリンクがあります。ruby-doc.org / stdlib-
フランコ

2
私のWindowsマシンでは、このファイルrbreadline.rbとにありreadline.rbましたC:\RailsInstaller\Ruby2.1.0\lib\ruby\site_ruby\2.1.0\ 。行をからに変更しrequire 'dl'ましたrequire 'fiddle'。警告はもうありません。
Blairg23 2015年

1
依存関係があるため、これは機能しません。恐れ入りますが、@ Blairg23
Martin Greenaway

74

あなたはDL is deprecated, please use Fiddle警告をコメントアウトしたいかもしれません

C:\ Ruby200 \ lib \ ruby​​ \ 2.0.0 \ dl.rb

迷惑であり、irb / pryや他のgemsコードの所有者ではないため


3
vagrant upWindowsで実行中にこのエラーが発生した場合、このファイルはにありますC:\vagrant\embedded\lib\ruby\2.0.0dl.rb
sjy 2014

1
@syjのおかげで、私の場所はC:\HashiCorp\Vagrant\embedded\lib\ruby\2.0.0\dl.rb
mpenでした。14

C:\ RailsInstaller \ Ruby2.1.0 \ libに\ルビー\ 2.1.0 \ dl.rbライン8
スニルBN

3

この解決策はopenshift.com入手しました

解決:

このエラーは、Ruby 2.0.0バージョンのWindowsマシンでのみ発生します。Ruby 2.0が正式にサポートされるまで、Ruby 1.9にダウングレードしてください。

Windowsでは、Ruby 1.9.3を2.0とともにインストールできます。%PATH%をc:\ruby193\、gemをインストールする前にインストールしたディレクトリに変更します。


さらに、openshift.comのソリューションへのリンクを教えてください。
Alexander Vogt

近い将来にruby 2.0を正式にサポートする計画はありますか?
Bernhard

@AlexanderVogtソリューションが参照されます。上記の私の編集を参照してください。
Rod Argumedo

3

「DLは非推奨です。Fiddleを使用してください」というメッセージはエラーではありません。これは単なる警告です。
解決策:
3つの簡単な手順でこれを無視できます。
ステップ1. C:\ RailsInstaller \ Ruby2.1.0 \ lib \ ruby​​ \ 2.1.0に
移動します。ステップ2.次に、dl.rbを見つけて、Aptana、sublime textなどのオンラインエディターでファイルを開きます
。ステップ3. 8行目をコメントにします。 '#' ie#warn "DL is deprecated、please use Fiddle"。
以上です、ありがとうございます。


2

私がWindowsでトールコマンドを作成したかったとき、私はこれに遭遇しました。

私が私のアプリケーションを実行するたびにそのメッセージが出力されるのを避けるために、私はトールをロードしている間、一時的に警告をミュートしました:

begin
  original_verbose = $VERBOSE
  $VERBOSE = nil
  require "thor"
ensure
  $VERBOSE = original_verbose
end

これにより、サードパーティのソースファイルを編集する必要がなくなりました。


クールなソリューションであり、他の人のコードを変更する必要はありません。
Bernhard
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.