198

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

DL 已弃用,请使用 Fiddle

注意:我在 Windows 机器上。

这条消息是什么意思?

4

5 回答 5

208

当您使用 Windows 时,您收到的消息ruby 2.0.0p0 (2013-02-24)常见

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

来源是前段时间引入的 DL 的弃用通知dl.rb(请参阅修订/37910)。

在 Windows 上,该lib/ruby/site_ruby/2.0.0/readline.rb文件仍然需要dl.rb,因此当您(因为 irb 需要)或其他任何需要时会出现警告消息require 'irb''readline'require 'readline'

您可以readline.rb使用您喜欢的文本编辑器打开并查找代码(靠近第 4369 行):

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

我们总是希望在未来的Ruby版本中改进以解决这种弃用问题。

编辑:对于那些想要更深入地了解FiddleDL的人,可以说他们的目的是将外部库与 Ruby 动态链接;您可以在 ruby​​-doc 网站上阅读有关DLFiddle的信息。

于 2013-03-24T17:56:45.117 回答
74

您可能想在以下位置注释掉DL is deprecated, please use Fiddle警告

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

因为这很烦人,而且你不是 irb/pry 或其他一些 gems 代码所有者

于 2013-08-06T14:46:14.687 回答
3

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

解析度:

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

在 Windows 上,您可以将 Ruby 1.9.3 与 2.0 一起安装。c:\ruby193\在安装 gem 之前将您的 %PATH% 更改为或您安装的任何目录。

于 2015-04-05T09:07:04.313 回答
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 已弃用,请使用 Fiddle" 。
就是这样,谢谢。

于 2016-02-07T01:55:04.907 回答
2

当我想在 Windows 下创建一个 thor 命令时,我自己遇到了这个问题。

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

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

这使我不必编辑第三方源文件。

于 2016-04-19T14:08:29.383 回答