Irb 错误:未定义的方法"拆分"



我最近打开了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行,我们可以发现splitpath上被调用。似乎出于某种原因,您的pathnil—可能是因为其中一个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

最新更新