Ruby 2.0.0p0 IRB 경고 :“DL은 더 이상 사용되지 않습니다. Fiddle을 사용하십시오.”


196

방금 이전 버전의 Ruby를 제거하고 모든 보석 (레일 포함)을 제거하고 Ruby 2.0을 설치했습니다. 다시 말해서 완전히 새로 설치하십시오. IRB를 시작할 때이 메시지가 나타납니다.

DL은 더 이상 사용되지 않습니다. Fiddle을 사용하십시오.

참고 : 저는 Windows 컴퓨터에 있습니다.

이 메시지는 무엇을 의미합니까?


2
~/.irbrc파일 내용은 무엇입니까 ?
Todd A. Jacobs

2
내 무지를 용서하지만이 파일을 어디에서 찾을 수 있습니까?
fbonetti

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에 대한 Deprecation 통지입니다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 = {}

루비의 향후 릴리스에서이 지원 중단 문제를 해결하기 위해 개선이 이루어지기를 바랍니다 .

편집 : Fiddle vs DL 에 대해 더 깊이 알고 싶다면 외부 라이브러리를 Ruby와 동적으로 연결하는 것이 목적입니다. ruby-doc 웹 사이트에서 DL 또는 Fiddle 에 대해 읽을 수 있습니다 .


@webRat 게시물을 다시 편집하십시오. rbrealine.rb가 커뮤니티에 의해 잘못 편집되었다고 생각합니다. 주목 해 주셔서 감사합니다!
Franco Rondini

1
이 모든 것이 너무 불만족스럽게 들립니다. 어쨌든, Msangle의 아래의 주석을 참고하여 "피들이 란 무엇입니까?"
의지

1
@Paul, 대답의 마지막 두 줄에는 보지 못했을 두 개의 링크가 있습니다 : ruby-doc.org/stdlib-2.0.0/libdoc/fiddle/rdoc/Fiddle.html , ruby-doc.org/ stdlib-2.0.0 / libdoc / dl / rdoc / DL.html
Franco Rondini

2
내 Windows 컴퓨터에서이 파일 rbreadline.rb과 위치를 찾았 readline.rb습니다 C:\RailsInstaller\Ruby2.1.0\lib\ruby\site_ruby\2.1.0\ . 줄을에서 (으) require 'dl'로 변경 했습니다 require 'fiddle'. 더 이상 경고가 없습니다.
Blairg23

1
줄에 의존성이 있기 때문에 작동하지 않습니다. @ Blairg23
Martin Greenaway

74

DL is deprecated, please use Fiddle경고 를 주석 처리 할 수 ​​있습니다 .

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

성 가시고 irb / pry 또는 다른 gem 코드 소유자가 아니기 때문에


3
vagrant upWindows에서 실행할 때이 오류가 발생하면 이 파일을에서 찾을 수 있습니다 C:\vagrant\embedded\lib\ruby\2.0.0dl.rb.
sjy

1
감사합니다 @syj, 내 위치는C:\HashiCorp\Vagrant\embedded\lib\ruby\2.0.0\dl.rb
mpen

C : \ RailsInstaller \ Ruby2.1.0 \ lib \ ruby ​​\ 2.1.0 \ dl.rb 8 행
Sunil BN

3

나는 openshift.com 에서이 해상도를 얻었습니다 .

해결:

이 오류는 Ruby 2.0.0 버전이 설치된 Windows 시스템에서만 발생합니다. 공식적으로 Ruby 2.0을 지원할 때까지 Ruby 1.9로 다운 그레이드하십시오.

Windows에서는 2.0과 함께 Ruby 1.9.3을 설치할 수 있습니다. c:\ruby193\gem을 설치하기 전에 % PATH %를 설치하거나 다른 디렉토리 로 변경하십시오 .


openshift.com의 솔루션에 대한 링크를 추가로 제공 할 수 있습니까?
Alexander Vogt

가까운 시일 내에 공식적으로 루비 2.0을 지원할 계획이 있습니까?
Bernhard

@AlexanderVogt 이제 솔루션이 참조되었습니다. 위의 편집 내용을 참조하십시오.
Rod Argumedo

3

"DL은 더 이상 사용되지 않습니다. Fiddle을 사용하십시오."라는 메시지는 오류가 아닙니다. 경고 일뿐입니다.
해결 방법 :
간단한 3 단계만으로이를 무시할 수 있습니다.
1 단계 : C : \ RailsInstaller \ Ruby2.1.0 \ lib \ ruby ​​\ 2.1.0으로 이동합니다
. 그런 다음 dl.rb를 찾아 Aptana, 숭고한 텍스트 등과 같은 온라인 편집기로 파일을 엽니 다.
3 단계. '#'즉 # 경고 "DL은 더 이상 사용되지 않습니다. Fiddle을 사용하십시오."
그게 다야, 고마워


2

Windows에서 thor 명령을 만들고 싶을 때이 문제가 발생했습니다.

thor 응용 프로그램을 실행할 때마다 해당 메시지가 출력되지 않도록 thor를로드하는 동안 일시적으로 경고를 음소거했습니다.

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

타사 소스 파일을 편집 할 필요가 없었습니다.


멋진 솔루션으로 다른 사람들의 코드를 변경할 필요가 없습니다.
Bernhard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.