2011-10-02 15 views
33

Próba uruchomienia rake cucumber:ok i otrzymuję ten błąd:Rake "już zainicjowany stałą WFKV_" Ostrzeżenie

/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_

wówczas:
Command failed with status (1): [/Users/dev/.rbenv/versions/1.9.2-p290/bin...]

Jestem całkiem nowy Rails i Google nie włącz coś dla tego błędu.

EDYCJA: Próbowałem dodać bundle exec i to nie ma znaczenia.

Oto co mam z --trace:

/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:53:in `block in create_shell_runner' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:45:in `call' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:45:in `sh' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/file_utils_ext.rb:36:in `sh' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/cucumber-1.1.0/lib/cucumber/rake/task.rb:104:in `run' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/cucumber-1.1.0/lib/cucumber/rake/task.rb:193:in `block in define_task' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/Users/dev/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rake-0.9.2/bin/rake:32:in `<top (required)>' 
/Users/dev/.rbenv/versions/1.9.2-p290/bin/rake:19:in `load' 
/Users/dev/.rbenv/versions/1.9.2-p290/bin/rake:19:in `<main>' 
Tasks: TOP => cucumber:ok 

Odpowiedz

51

zacząłem mieć ten sam problem ten wieczór. Wydaje się być związany z Rack 1.3.4. Naprawiłem go dodając to do mojego Gemfile:

gem 'rack', '1.3.3' 

Następnie uruchomiony:

bundle update rack 

Nawiasem mówiąc, próbowałem sugestię Bozhidar przed tym, ale bezskutecznie.

+6

Dzięki za wskazanie tego. W takim razie usunę moją odpowiedź. –

+14

Z komentarzy w common_192.rb ("Skradziono z uri/common.rb @ 32618ba ruby ​​core, aby naprawić problemy DoS w wersji 1.9.2" i "Prawdopodobnie powinno to zostać usunięte, gdy pojawi się poziom poprawki w Rubim 1.9.2, który obejmuje to fix. ") wygląda tak, jakby został dodany do stojaka, aby zapobiec atakowi typu" odmowa usługi ". Celowo wykorzystuje on lukę w zabezpieczeniach Ruby, ale monkeypatch powoduje pojawienie się ostrzeżenia "już zainicjowane stałe". Wygląda więc na to, że powinieneś powrócić do wersji 1.3.3 zgodnie z sugestią Daniela lub uzyskać poprawkę i ostrzec ją na jakiś czas. –

+1

W moim przypadku ostrzeżenie uniemożliwiło prekompilację potoków aktywów, więc jedyną opcją było przejście do wersji 1.3.3. –

-1

Zawarłem więc:

wymagają "uri/common"; :: URI.send: remove_const,: WFKV_

jednak komentarz, który mówi „to zadziała w Gemfile” w rzeczywistości powinien przeczytać „Musi być w Gemfile”.

8

Rack 1.3.5 jest już dostępny, co poprawiło to ostrzeżenie.