每天都在尝试不同的办法,源代码都改过了,结果还是没跑完。 Ruby 1.9 跑到后面回抛出
/home/jason/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/rubygems/indexer.rb:129: stack level too deep (SystemStackError)
而 1.8.7 跑到最后没有错,但索引依然没出来...
stack level too deep (SystemStackError) 是因为太多 recursive calls,你的问题在那里不大清楚
cat test.rb def recursive_call(count) count += 1 puts count recursive_call(count) end
recursive_call(0)
=>... 8731 8732 test.rb:3: stack level too deep (SystemStackError)
#5 楼 @zhang_victor 不一定是递归调用会出现这样的问题 有些不是递归调用,但是实际上 stack 的深度已经达到了系统的上限也会抛这个异常。一般用 ulimit 增大系统 max stack size 就 ok 的。
最后一批 gem 索引执行完以后,淘宝的 Rubygems 镜像就可以用了,这次够折腾的,rubygems 那个 gemerate_index 命令在大量数据的场景下运行有很多问题,反复研究修改了好多处代码才找到一个办法生成… 短短续续耗费了大半个月啊... 现在 A-Z, a-t 字母打头的 Gem 都可以安装了,剩下 u-z 字母打头的还在跑 http://ruby.taobao.org
一定要全部下完才能搞镜像么?
我的 lazy download 镜像超简单: https://github.com/luikore/gems.mirror