Ruby 2.0.0p0 IRB警告:“DL已被弃用,请使用Fiddle”

时间:2013-03-23 18:23:21

标签: ruby windows

我刚卸载了旧版本的Ruby,删除了我的所有宝石 (包括Rails),并安装了Ruby 2.0。换句话说,一个完全干净的重新安装。启动IRB后,我收到了这条消息:

DL is deprecated, please use Fiddle

注意:我在Windows机器上。

这条消息是什么意思?

5 个答案:

答案 0 :(得分:208)

ruby 2.0.0p0 (2013-02-24) 位于 Windows 之上时,您收到的消息很常见。

消息“DL is deprecated, please use Fiddle不是错误;这只是一个警告

来源是dl.rb前面介绍的Deprecation notice for DL(见revisions/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网站上阅读DLFiddle

答案 1 :(得分:74)

您可能想在

注释掉DL is deprecated, please use Fiddle警告
C:\Ruby200\lib\ruby\2.0.0\dl.rb

因为它很烦人,你不是irb / pry或其他一些宝石代码所有者

答案 2 :(得分:3)

我在openshift.com得到了这个决议。

分辨率:

  

此错误仅在具有Ruby 2.0.0版本的Windows计算机上发生。   在我们正式支持Ruby 2.0之前,请降级到Ruby 1.9。

     

在Windows上,您可以在2.0和2.0之间安装Ruby 1.9.3。改变你的   %PATH%到c:\ruby193\或您之前安装的任何目录   安装宝石。

答案 3 :(得分:3)

消息“DL已弃用,请使用小提琴”不是错误;这只是一个警告 解决方案:
您可以通过3个简单步骤忽略这一点 步骤1.转到C:\ RailsInstaller \ Ruby2.1.0 \ lib \ ruby​​ \ 2.1.0
步骤2.然后找到dl.rb并使用Aptana,sublime text等任何在线编辑器打开文件 步骤3.用'#'注释第8行,即#warn“DL已被弃用,请使用Fiddle” 就是这样,谢谢你。

答案 4 :(得分:2)

当我想在Windows下制作一个执行命令时,我自己遇到了这个问题。

为了避免每次运行我的Thor应用程序时输出该消息,我在加载thor时暂时将警告静音:

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

这使我免于编辑第三方源文件。