2010-08-11 7 views
11

Powiel możliwe:
Rails 3.0 & Ruby 1.9.2rc: Rake commands return 'already initialized constant' & stack level too deep errors. Any ideasprowizja została przerwana! Poziom stos zbyt głęboko

używam Ruby wersję 1.9.1 na Windows Vista. Otrzymuję błąd przerwania rake'u dla dowolnego polecenia rake'u. Nie dzieje się to we wszystkich moich folderach aplikacji. Dzieje się to tylko w określonym folderze aplikacji.

C:\rails_project\stunetwork>rake db:reset 
(in C:/rails_project/stunetwork) 
rake aborted! 
stack level too deep 
C:/Ruby191/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rak 
efile' 
(See full trace by running task with --trace) 
+2

możesz wykonane samo polecenie z --trace argumentu? – shingara

Odpowiedz

20

spróbuj umieścić pakiet exec przed poleceniem rake.

bundle exec rake -T 
+0

Nie jestem pewien, do czego służy -T, ale to działało dla mnie. $ bundle exec rake db: migrate – Kiran

+0

-T po prostu podaje listę wszystkich możliwych poleceń rake. –

+0

Dlaczego jest to potrzebne? – Ash

0

Stos wywołań może zależeć od klejnotów instalowanych (niektóre perełki monkeypatch zadania szyny), który wyjaśnia dlaczego można napotkać to na konkretnej aplikacji, a nie na innych.

W systemie unix można spróbować użyć polecenia ulimit w celu zwiększenia rozmiaru stosu. Po stronie systemu Windows nie znalazłem jeszcze rozwiązania.

W zależności od tego, jakie uwolnienie rubinu stosujesz w oknach, możesz poprosić opiekunów o zwiększenie stosu.

Do instalatora ruby ​​należy zainstalować środowisko kompilacji mingw, sklonować kod github repository i ponownie skompilować ruby, których używasz (niezbyt seksowne, przyznaję).

+0

Podobało mi się to, dzięki! Niestety nie wystarczyło. Ustawiłem: "ulimit -s unlimited", a następnie zaznaczyłem "ulimit -a", a stos jest nieograniczony. Nadal występuje ten sam błąd "stos za głęboki". Jaki był powód? – YogiZoli

0

Właśnie napotkałem ten dokładny komunikat o błędzie na Ubuntu i udało mi się go rozwiązać przez downgrading rubygems od 1.8.3 do 1.7.1.

+1

Ponieważ Rubygems 1.7.1 został wydany 1 kwietnia 2011 r., A to pytanie zostało zadane 11 sierpnia 2010 r., Mógł to być inny problem, nawet jeśli komunikaty o błędach były podobne. –

+5

@Andrew tak, to całkiem prawdopodobne. Ponieważ jednak rozwiązanie to zabrało mi trochę czasu na wypracowanie i rozwiązanie mojego problemu, pomyślałem, że dobrze byłoby go opublikować tutaj, nawet na ryzyko pomylenia osób z 2010. –

+0

Mam również ten problem. Wygląda na to, że wersja 1.8.10 jest niekompatybilna z rake 0.8.7. –

2

Miałem tylko ten problem z ruby-1.9.2-p180 przez rvm.

Zmiana na ruby-1.9.2-p0 naprawiła problem. spróbuj "rvm use 1.9.2-p0"

+0

Próbowałem tego rozwiązania, nie działa dla mnie.Czy znasz jakiś inny pomysł? – YogiZoli

+0

to nie działało, ponieważ nie jest powiązane, ten błąd został naprawiony w rubygemach 1.8.16 – mpapis

3

Musisz zaktualizować swój klejnot. poznałem ten błąd z GEM „1.8.10”, a ustalona przez uaktualnienie do 1.8.16

gem update --system

+0

true to był błąd i został naprawiony za pomocą https://github.com/rubygems/rubygems/commit/7d43f1418a048bac277344df962aafd00797230b - dostępny w wersji 1.8.16 – mpapis