2010-08-11 72 views
11

可能重複:
Rails 3.0 & Ruby 1.9.2rc: Rake commands return 'already initialized constant' & stack level too deep errors. Any ideas耙子中止!堆棧級別太深

正在使用Windows Vista上的Ruby版本1.9.1。我正在使用任何rake命令獲取rake中止錯誤。這不會發生在我的所有應用程序文件夾中。它只發生在一個特定的應用程序文件夾。

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

你可以做同樣的命令--trace參數固定的嗎? – shingara 2010-08-11 08:00:23

回答

20

嘗試將bundle exec放在rake命令的前面。

bundle exec rake -T 
+0

不知道-T是什麼,但是這對我有用。 $ bundle exec rake db:migrate – Kiran 2011-08-22 04:46:08

+0

-T只是列出了所有可能的rake命令。 – 2011-08-23 19:02:05

+0

這是爲什麼需要? – Ash 2011-08-25 18:11:56

0

呼叫可以依靠安裝寶石堆(有些寶石猴補丁軌道任務),這也解釋了爲什麼你會遇到這樣的特定應用程序的,而不是別人。

在unix系統上,您可以嘗試使用ulimit命令來增加堆棧大小。在窗戶方面,我還沒有找到解決方案。

根據您在Windows上使用哪種Ruby版本,您可能想要問維護人員如何增加堆棧。

對於ruby安裝程序,您需要安裝mingw編譯環境,克隆github repository並重新編譯您使用的ruby(我不承認我很性感)。

+0

我喜歡這個,謝謝!不幸的是還不夠。我設置:「ulimit -s unlimited」,然後選中「ulimit -a」並且堆棧是無限的。它仍然說相同的「堆棧太深」的錯誤。是什麼原因? – YogiZoli 2011-08-05 23:21:44

0

我剛剛在Ubuntu上遇到了這個確切的錯誤信息,並且能夠通過從1.8.3到1.7.1的downgrading rubygems解決它。

+1

由於Rubygems 1.7.1於2011年4月1日發佈,並且在2010年8月11日提出了此問題,即使錯誤消息類似,它也可能是一個不同的問題。 – 2011-05-24 23:08:47

+5

@Andrew是的,這很可能。但是,由於此解決方案花了我一些時間來解決問題,因此我認爲將它發佈到此處是個好主意,即使存在將2010年的人困惑的風險。 – 2011-05-26 02:09:00

+0

我也遇到此問題。看來版本1.8.10與rake 0.8.7不兼容。 – 2011-09-10 18:19:32

2

我只有通過rvm與ruby-1.9.2-p180有這個問題。

切換到ruby-1.9.2-p0修復了這個問題。 嘗試使用「rvm use 1.9.2-p0」

+0

我試過這個解決方案,對我沒有任何作用。你知道其他想法嗎? – YogiZoli 2011-08-04 16:16:56

+0

它沒有工作,因爲它沒有關係,這個bug在rubygems中被修復了1.8.16 – mpapis 2012-02-16 12:12:34

3

您需要更新您的寶石。 我遇到了這個錯誤與寶石「1.8.10」,並通過升級到16年8月1日

gem update --system

+0

true這是一個錯誤,並且已被修復https://github.com/rubygems/rubygems/commit/7d43f1418a048bac277344df962aafd00797230b - 可在1.8.16 – mpapis 2012-02-16 12:11:47