2010-08-11 73 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