未初始化的常量RUBY_引擎

未初始化的常量RUBY_引擎,ruby,rbenv,Ruby,Rbenv,我刚刚将Ruby 1.9.3-p374安装到rbenv中,并且正在为我正在开发的应用程序绑定。但是,当bundle到达调用方的绑定时,我看到以下错误: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:7: uninitialized constant RUBY_ENGINE (NameError) 运行echo$RUBY\u引擎会给我一个空白字符串。手动将RUBY

我刚刚将Ruby 1.9.3-p374安装到rbenv中,并且正在为我正在开发的应用程序绑定。但是,当bundle到达调用方的绑定时,我看到以下错误:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
extconf.rb:7: uninitialized constant RUBY_ENGINE (NameError)
运行
echo$RUBY\u引擎
会给我一个空白字符串。手动将
RUBY\u引擎设置为
RUBY
也没有帮助


如何解决这个问题?

RUBY\u引擎
RUBY\u版本
都是RUBY为运行的RUBY程序定义的常量。它们不是普通shell中可用的环境变量,这解释了为什么
echo
命令空手而归

另外,正如stacktrace摘录所证明的,您使用的不是Ruby 1.9.3,而是Mac上默认的Ruby 1.8。与Ruby 1.8一样,
Ruby_引擎
不可用,您会看到您观察到的错误


这一切的原因可能很简单,就是你没有真正使用你的rbenv安装的ruby。为此,您应该在shell上尝试类似于
rbenv global 1.9.3-p374
,并检查您当前的ruby是否正确(通过检查例如
ruby--version
)。

只需检查是否首先定义了它。像这样的

if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'

已尝试使用
rbenv-global
ruby--version
符合预期。还是同样的问题。您使用的是非登录shell吗?可能未执行来自
rbenv init
的shell钩子。