Ruby:堆栈级别太深(SystemStackError)

Ruby在Cygwin中遇到了rails和bundler。

$ ruby -v ruby 1.9.3p374 (2013-01-15 revision 38858) [i386-cygwin] Chloe@dumbopc /cygdrive/c/Sites $ rails -v Rails 3.2.11 Chloe@dumbopc /cygdrive/c/Sites $ cd testapp Chloe@dumbopc /cygdrive/c/Sites/testapp $ rails -v /usr/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb:114: stack level too deep (SystemStackError) Chloe@dumbopc /cygdrive/c/Sites/testapp $ bundle install Fetching gem metadata from https://rubygems.org/........... Fetching gem metadata from https://rubygems.org/.. Unfortunately, a fatal error has occurred. Please see the Bundler troubleshooting documentation at http://bit.ly/bundler-issues. Thanks! /usr/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/friendly_errors.rb:32: stack level too deep (SystemStackError) 

我尝试了两个版本的Ruby,ruby 1.9.3p327和ruby-1.9.3-p374-1。 我发现谷歌的一些东西暗示1.9.2可能解决了这个问题,但是我无法在setup.exe中选择它。 我也试过了

 peflags -x8192000 `which ruby` 

这没有帮助。 我也试过18192000.我卸载了Ruby并重新安装。 与rails相同。 只有当它在app目录中时它才会失败。 当我尝试

 rails new testapp 

它会创建目录和文件,但在bundle install上会失败。 我也无法在该目录中运行rails -v 。 我怀疑还有其他命令也会失败,但我还没有找到它们。 我正在使用Windows XP SP3。

 $ uname -a CYGWIN_NT-5.1 dumbopc 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin 

如果你好奇,这是坏线

 $ rails -v /usr/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb:114: stack level too deep (SystemStackError) $ cat -n /usr/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb | grep '^ *114' 114 requirements.map { |op, version| "#{op} #{version}" }.sort $ bundle install /usr/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/friendly_errors.rb:32: stack level too deep (SystemStackError) $ cat -n /usr/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/friendly_errors.rb | grep '^ *32' 32 raise e 

我也尝试了捆绑器链接后的所有建议。 我在rails脚本中添加了-d并打印出来:

 $ rails -v Exception `LoadError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems.rb:1264 - cannot load such file -- rubygems/defaults/operating_system Exception `LoadError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems.rb:1273 - cannot load such file -- rubygems/defaults/ruby Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for # /usr/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb:118: stack level too deep (SystemStackError) $ head -1 /usr/bin/rails #!/usr/bin/ruby.exe -d 

我认为你的peflags命令行是错误的。 尝试:

 peflags -X409600 `which ruby` 

如此处所述。

同样的事情发生在我身上。 我从cygwin安装文件中卸载了ruby,当我在CMD中使用ruby -v时,它仍然存在!

事实certificate,我在“PATH”环境变量中有其他ruby.exe实例。 因此,检查您的环境变量,卸载所有内容,看看是否有另一个指向的ruby文件。