rake 설치 실행 오류

4894 단어 jeweler

묘사

라크 설치를 실행하는 동안 다음 오류가 발생했습니다.
#Jeweler::Commands::InstallGem:0x00001009bec80의 정의되지 않은 메서드 "sh"
나는 RVM을 Ruby-1.9.2-head로 실행합니다.추적은 나에게 다음과 같은 정보를 주었다.
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@crespik/gems/jeweler-1.6.0/lib/jeweler/commands/install_gem.rb:14:inrun' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@crespik/gems/jeweler-1.6.0/lib/jeweler.rb:92:in 설치 gem'
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@crespik/gems/jeweler-1.6.0/lib/jeweler/tasks.rb:88:inblock in define' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/task.rb:205:in통화'
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/task.rb:205:inblock in execute' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/task.rb:200:in마다'
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/task.rb:200:inexecute' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/task.rb:158:in 블록에 호출 체인이 있는 호출
/Users/alvinrespo/.rvm/rubies/ruby-1.9.2-head/lib/ruby/1.9.1/monitor.rb:201:inmon_synchronize' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/task.rb:151:in용 call chain'호출
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/task.rb:144:ininvoke' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/application.rb:112:in 호출 퀘스트'
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/application.rb:90:inblock (2 levels) in top_level' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/application.rb:90:in마다'
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/application.rb:90:inblock in top_level' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/application.rb:129:in표준 이상 처리'
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/application.rb:84:intop_level' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/application.rb:62:in 블록이 실행 중입니다'
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/application.rb:129:instandard_exception_handling' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/lib/rake/application.rb:59:inrun'
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@global/gems/rake-0.9.0/bin/rake:31:in<top (required)>' /Users/alvincrespo/.rvm/gems/ruby-1.9.2-head@global/bin/rake:19:in 불러오기'
/Users/alvinrespo/.rvm/gems/ruby-1.9.2-head@global/쓰레기통/써레: 19:in`'
나는 다음과 같은 문제를 발견했다.
    sh command # TODO where does sh actually come from!? - rake, apparently
다음과 같이 바꿉니다.
    Kernel::system(command)
설치를 실행할 수 있습니다.또 누가 이 문제를 가지고 있습니까?

토론 #1

여기도!방금 보석상이나 다른 보석의 업데이트를 가져왔어요. (기억이 안 나요)
나는 네가 해결 방법을 찾았다는 것을 알고 있으니 포크와 당겨라!

토론 #2

라크를 실행할 때 같은 문제가 발생했습니다:release
Executing "gem push ./pkg/accumulators-0.2.0.gem":
rake aborted!
undefined method `sh' for #<Jeweler::Commands::ReleaseToRubygems:0x00000100db7418>
/Users/gavin/.rvm/gems/ruby-1.9.2-p180/gems/jeweler-1.6.0/lib/jeweler/commands/release_to_rubygems.rb:13:in `run'
/Users/gavin/.rvm/gems/ruby-1.9.2-p180/gems/jeweler-1.6.0/lib/jeweler.rb:136:in `release_gem_to_rubygems'
/Users/gavin/.rvm/gems/ruby-1.9.2-p180/gems/jeweler-1.6.0/lib/jeweler/rubygems_dot_org_tasks.rb:31:in `block (2 levels) in define'
... etc
sh 중에서Kernel::systemrelease_to_rubygems.rb로 바꾸는 것도 효과가 좋다.

토론 #셋

당김 요청https://github.com/technicalpickles/jeweler/pull/184

토론 #4

그게 나를 방해했어.우리들은 이 제의가 곧 받아들여지기를 바란다.감사합니다. Helios

토론 #5

여기도 마찬가지입니다. 제가 쥬얼러 기반 라이브러리를 발표했기 때문입니다.
메뉴 준비됐습니다: -

토론 #6

감사합니다helios!적어도 이것은 간단한 수정이므로 이 문제가 빨리 해결되기를 바란다.당신들은 모두 같은 루비 버전을 사용하고 있습니까?

토론 #7

이것은 Rake 0.9.0의 문제로'sh'와 같은 DSL 방법을 전역 대상 이름 공간에서 옮겼다.이 방법들은 여전히 사용할 수 있지만, include Rake::DSL 과 함께 사용하고자 하는 클래스에 의도적으로 포함되어야 한다.

토론 #8

알지만 시스템에 전화하는 게 좋을 것 같아요.

토론 #9

참고로 이것도 해결 방안이므로 우리는 어떤 방식으로 그것을 복원해야 한다.

토론 #10

Rake를 계속 사용하는 sh 방법의 장점은 Rake 명령행 로고를 계속 사용할 것이다. 예를 들어 --dry-run--verbose

토론 #11

cucker: 나에게 상관없다. 나는 이 문제가 빨리 해결/복구되기를 바란다.

좋은 웹페이지 즐겨찾기