我刚刚卸载了旧版本的 Ruby,删除了所有的 gem(包括 Rails),并安装了 Ruby 2.0。换句话说,完全干净的重新安装。启动 IRB 后,我收到以下消息:
DL 已弃用,请使用 Fiddle
注意:我在 Windows 机器上。
这条消息是什么意思?
当您使用 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版本中改进以解决这种弃用问题。
编辑:对于那些想要更深入地了解Fiddle与DL的人,可以说他们的目的是将外部库与 Ruby 动态链接;您可以在 ruby-doc 网站上阅读有关DL或Fiddle的信息。
您可能想在以下位置注释掉DL is deprecated, please use Fiddle
警告
C:\Ruby200\lib\ruby\2.0.0\dl.rb
因为这很烦人,而且你不是 irb/pry 或其他一些 gems 代码所有者
我在openshift.com得到了这个决议。
解析度:
此错误仅发生在 Ruby 2.0.0 版本的 Windows 机器上。在我们正式支持 Ruby 2.0 之前,请降级到 Ruby 1.9。
在 Windows 上,您可以将 Ruby 1.9.3 与 2.0 一起安装。
c:\ruby193\
在安装 gem 之前将您的 %PATH% 更改为或您安装的任何目录。
消息“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" 。
就是这样,谢谢。
当我想在 Windows 下创建一个 thor 命令时,我自己遇到了这个问题。
为了避免每次运行我的 thor 应用程序时都输出该消息,我在加载 thor 时暂时静音了警告:
begin
original_verbose = $VERBOSE
$VERBOSE = nil
require "thor"
ensure
$VERBOSE = original_verbose
end
这使我不必编辑第三方源文件。