我如何判断我正在使用哪个Ruby解释器?

时间:2017-11-23 18:28:11

标签: ruby jruby rubinius mri

我见过this thread,但我的问题可能更基本:

鉴于该线程[1]中接受的答案的回复对我来说是"/Users/username/.rvm/rubies/ruby-2.3.0/bin/ruby",我怎么知道那是MRI,JRuby等?如果它是其他主要口译人员会是什么样子?

[1]保存几秒钟,RbConfig.ruby

2 个答案:

答案 0 :(得分:3)

如今,所有主流Ruby实现都设置了RUBY_ENGINE伪常量。我能记住的各种实现的值是:

  • Rubinius:rbx
  • JRuby:jruby
  • TruffleRuby:truffleruby
  • 蛋白石:opal
  • MRuby:mruby
  • YARV:令人困惑,ruby
  • MRI:更令人困惑的是, ruby
  • MagLev:maglev
  • IronRuby:ironruby
  • MacRuby:macruby
  • 黄玉:topaz

答案 1 :(得分:3)

根据the thread in the ruby-forum,我的工作形式为Ruby

irb(main):010:0> RbConfig.ruby
=> "/Users/<user>/.rbenv/versions/2.1.2/bin/ruby"
irb(main):011:0> RbConfig::CONFIG["RUBY_INSTALL_NAME"]
=> "ruby"

JRuby

RbConfig.ruby
=> "/Users/<user>/.rbenv/versions/jruby-9.1.8.0/bin/jruby"
irb(main):008:0> RbConfig::CONFIG["RUBY_INSTALL_NAME"]
=> "jruby"

根据您安装不同ruby版本的方式,您可以使用安装路径中的差异(JRuby有前缀)或使用RbConfig::CONFIG["RUBY_INSTALL_NAME"]

要查看所有配置键,请键入:

RbConfig::CONFIG.keys