향수 경로는 "초기화되지 않은 향수:::CLI: FileUtils"를 표시합니다.

5326 단어 homesick

묘사

나는 막 새 컴퓨터에 홈릭을 설치했는데 homesick track을 실행할 때 다음과 같은 오류를 받았다.`` ~ > homesick track .tlmgr.sh dotfiles /usr/local/lib/ruby/gems/2.4.0/gems/homesick-1.1.5/lib/homesick/cli.rb:160:intrack': 초기화되지 않은 상수 Homesick: CLI: FileUtils(NameError)
그게 무슨 소리야?파일 테스트
ruby-r.0/gems/local/thor.0/gems/.rb:27:inrun' from /usr/local/lib/ruby/gems/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in 호출 명령'
/usr/local/lib/ruby/gems/2.4.0/gems/thor-0.20.0/lib/thor에서 왔습니다.rb:387:indispatch' from /usr/local/lib/ruby/gems/2.4.0/gems/thor-0.20.0/lib/thor/base.rb:466:in시작'
from/usr/local/lib/ruby/gems/2.4.0/gems/homesick-1.1.5/bin/homesick:9:in<top (required)>' from /usr/local/bin/homesick:22:inload'
from/usr/local/bin/homesick:22:in`'

I don't know any ruby, but I googled it a bit and added `require 'FileUtils'` to `cli.rb`.
That threw many other errors, but the `track` command seemed to work after all:

/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/fileutils.rb:1185: 경고: 상수 FileUtils::Entry uu::S IF DOOR 초기화
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/FileUtils.rb:1185: 경고: 문이 여기에 있으면 S 의 이전 정의
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/fileutils.rb:1443: 경고: 상수 FileUtils::Entry\uU:DIRECTORY\u 용어가 초기화되었습니다.
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/FileUtils.rb:1443: 경고: 이전 디렉터리 용어 정의
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/fileutils.rb:1445: 경고: 상수 FileUtils::Entry Utils::SYSCASE 초기화
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/FileUtils.rb:1445:경고:SYSCASE 이전의 정의는 여기에 있습니다
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/fileutils.rb:1498: 경고: 상수 FileUtils::OPT 표 초기화
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/FileUtils.rb:1498:경고:여기 OPT 표의 이전 정의가 있습니다
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/fileutils.rb:1552: 경고: 상수 FileUtils::LOW 메소드 초기화
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/FileUtils.rb:1552:경고:이전 낮은 방법의 정의는 여기에 있다
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/fileutils.rb:1559: 경고: 상수 FileUtils::METHODS 초기화
/usr/local/ceral/ruby/2.4.1_1/lib/ruby/2.4.0/FileUtils.rb:1559:경고:이전의 방법은 여기에 정의되어 있다
```
무슨 생각 있어요?나는 향수병을 앓은 지 이미 한동안 되었는데, 이것은 이전에 발생한 적이 없다.

토론 #1

구글에서 더 많이 검색하고 require 'FileUtils'로 바꿨어요require 'fileutils'.이것은 마치 모든 문제를 해결한 것 같다.나는 요청을 하나 할 수 있지만, 여기에 또 다른 문제가 있는지 없는지는 확실하지 않다.알려줘.

토론 #2

나는 정말 무슨 이유로 너를 이렇게 하게 했는지 모르겠다.우리는 고향을 그리워하는 행위를 둘러싸고 여러 가지 테스트를 진행했는데, 마치 불합격한 것이 없는 것 같다.위의 스택 추적에서 Ruby 2.4.1에서 실행되고 있는 것 같습니다.우리는 현재 2.4.0 버전만 테스트하고 있다.내가 시간이 있을 때, 나는 2.4.1을 테스트 세트에 추가하려고 시도하지만, 당신은 2.4.0을 설치할 방법이 있습니까? 같은 문제에 부딪혔는지 보십시오.

토론 #셋

네, 문제점을 찾은 것 같습니다.
나는 Ruby 2.3을 시도했지만 여전히 효과가 없었다.
~ > homesick track .tlmgr.sh dotfiles
/usr/local/lib/ruby/gems/2.3.0/gems/homesick-1.1.5/lib/homesick/cli.rb:160:in `track': uninitialized constant Homesick::CLI::FileUtils (NameError)
Did you mean?  FileTest
    from /usr/local/lib/ruby/gems/2.3.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
    from /usr/local/lib/ruby/gems/2.3.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
    from /usr/local/lib/ruby/gems/2.3.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
    from /usr/local/lib/ruby/gems/2.3.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'
    from /usr/local/lib/ruby/gems/2.3.0/gems/homesick-1.1.5/bin/homesick:9:in `<top (required)>'
    from /usr/local/bin/homesick:23:in `load'
    from /usr/local/bin/homesick:23:in `<main>'
그러나 고향을 그리워하는 루비게이지 업데이트 버전thor를 설치해야 한다. 무엇이든지
~ > gem install homesick
Successfully installed thor-0.20.0
Fetching: homesick-1.1.5.gem (100%)
Successfully installed homesick-1.1.5
그래서 그게 문제일지도 몰라요.thor를 마운트 해제하고 이전 버전에서 다시 시도합니다.
Successfully uninstalled thor-0.20.0
~ > gem install thor -v 0.19.4
Fetching: thor-0.19.4.gem (100%)
Successfully installed thor-0.19.4
Parsing documentation for thor-0.19.4
Installing ri documentation for thor-0.19.4
Done installing documentation for thor after 0 seconds
1 gem installed
~ > homesick track .tlmgr.sh dotfiles
       track  /Users/dbmrq/.homesick/repos/dotfiles/home/.tlmgr.sh already exists, and is more recent than .tlmgr.sh. Run 'homesick SYMLINK CASTLE' to create symlinks.
   identical  /Users/dbmrq/.tlmgr.sh
그리고 효과가 있어요.🎉
이 때문에 문제는thor 0.20.0 업데이트 버전에서만 발생한 것 같다.내가 말한 바와 같이 require 'fileutils'cli.rb에 첨가하면 그것을 복구할 수 있지만, 나는 어떤 루비도 모르고, 이것이 방법인지도 모른다.
도와 주셔서 감사합니다.

토론 #4

저는 Thor 0.20.0과 Ruby 2.4.1에서 같은 오류를 얻었고 cli의 맨 위에서 확인할 수 있습니다require 'fileutils'.rb는 복구 작용을 한다.

토론 #5

루비 2.4.2p198과 토르 0.20.0도 마찬가지다.

토론 #6

톨의 이 약속은 고향을 그리워하는 과정에서 이 문제를 일으킨 것 같다.
https://github.com/erikhuda/thor/commit/687337a9f8e9bfe36e3331f8e6f129643a64b7e0
이것은 순전히 톨fileutils이 요구하는 의외의 부작용으로 고향 생각cli.rb에서 사용할 수 있기 때문에 정확한 해결 방안은 cli.rb에서 요구하는 것이라고 생각합니다.

좋은 웹페이지 즐겨찾기