我刚卸载了旧版本的Ruby,删除了我的所有宝石 (包括Rails),并安装了Ruby 2.0。换句话说,一个完全干净的重新安装。启动IRB后,我收到了这条消息:
DL is deprecated, please use Fiddle
注意:我在Windows机器上。
这条消息是什么意思?
答案 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网站上阅读DL或Fiddle。
答案 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
这使我免于编辑第三方源文件。