我最近打开了irb,现在突然每次我运行irb它都会给我这个错误:
load error: /Users/addisonbean/.rvm/rubies/ruby-2.1.2/.irbrc
NoMethodError: undefined method `split' for nil:NilClass
/Users/addisonbean/.rvm/scripts/irbrc.rb:45:in `<top (required)>'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/.irbrc:11:in `<top (required)>'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/irb/init.rb:236:in `load'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/irb/init.rb:236:in `run_config'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/irb/init.rb:19:in `setup'
irb(main):001:0>
但是正如我所展示的,它仍然在所有错误之后给我提示
这是/Users/addisonbean/.rvm/rubies/ruby-2.1.2/中的所有代码。Irbrc(数字为行号)
8 if ENV["rvm_path"].nil?
9 require File.join(ENV["HOME"], "irbrc")
10 else
11 require File.join(ENV["rvm_path"], "scripts", "irbrc")
12 end
我没有~/.irbrcw
我希望在这方面得到一些帮助,谢谢!
查看rvm的scripts/irbrc.rb
的第45行,我们可以发现split
在path
上被调用。似乎出于某种原因,您的path
是nil
—可能是因为其中一个rescue nil
块正在运行。
我不建议破解rvm的内部,但看起来您可以通过设置环境变量$rvm_ruby_string
来解决这个问题,因为irbrc.rb
在尝试找出它之前会检查它。将其设置为"2.1.2"应该与计算结果匹配。
这些步骤解决了我的问题:
- 查找当前ruby版本
ruby - v
的例子:
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
- 删除此版本
rvm remove 2.1.2
- 再次安装
rvm install 2.1.2