簡體   English   中英

Ruby:堆棧級別太深(SystemStackError)

[英]Ruby: stack level too deep (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。 我從Google找到了一些暗示1.9.2可以解決該問題的信息,但是我無法在setup.exe中選擇它。 我也試過

peflags -x8192000 `which ruby`

這沒有幫助。 我還嘗試了18192000。我卸載了Ruby,然后重新安裝。 與導軌相同。 它只有在應用程序目錄中時才會失敗。 當我嘗試

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

我還嘗試了bundler鏈接后的所有建議。 我在-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 #<Gem::Specification name=rake version=0.9.2.2>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=10.0.3>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.5>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.6>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=0.9.2.2>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=10.0.3>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.5>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.6>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=0.9.2.2>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=10.0.3>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.5>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.6>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=0.9.2.2>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=10.0.3>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.5>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.6>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=0.9.2.2>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=10.0.3>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.5>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.6>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=0.9.2.2>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=rake version=10.0.3>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.5>
Exception `NoMethodError' at /usr/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1495 - undefined method `to_ary' for #<Gem::Specification name=json version=1.7.6>
/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時,它仍然存在!

原來,我在“ PATH”環境變量中還有ruby.exe的其他實例。 因此,請檢查您的環境變量,卸載所有內容,然后查看它是否指向另一個ruby文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM