Rails启动错误的Ruby版本

时间:2011-10-09 15:01:32

标签: ruby-on-rails ruby macos ruby-1.9.2

TLDR:如何强制rails应用使用正确的ruby解释器?

您好,

我的Ruby 1.9.2p290安装的部分内容(某些类在某一天丢失了一天),所以我删除了它并试图重新安装环境。

我正在使用Snow Leopard。

Ruby 1.9.2是从源代码安装的。 (我试图通过MacPorts安装它会失败)。我并不热衷于RVM,因为我使用的是Bundler,我似乎回想起了Bundler和RVM如何交互的一些问题,尽管我可以告诉RVM的工作原理。

重新安装几个宝石后,我注意到它们被放置在Ruby 1.8的gem文件夹中。 “这很奇怪,”我想。

启动rails应用程序,我注意到有很多奇怪的异常被抛出语法。将RUBY_VERSION打印到stdout后,我注意到Rails应用程序运行的是1.8.7。

which ruby只显示一个ruby解释器:

$ which ruby
/usr/bin/ruby
$ /usr/bin/ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]

如果我打开活动监视器,Rails应用程序中的ruby进程位于/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby,我相信这是OSX附带的ruby解释器。

我还没有找到任何关于从OSX中彻底清除Ruby的信息。我很乐意这样做,然后只需从源代码安装ruby。

似乎有两个问题:

  • Rails正在运行一个ruby解释器,我不知道它是如何调用的,当我需要它来运行从源代码安装的1.9.2解释器时
  • 宝石正安装在1.8文件夹中,我怀疑是因为宝石认为它的运行情况低于1.8

我该如何解决这个问题?

谢谢,

汤姆

1 个答案:

答案 0 :(得分:1)

我想解决这个问题的最佳方法是使用rvm通过'gemset'来处理你的Ruby和Rails环境。

我有同样的问题,我现在使用gemsets没有问题。

这是我开始工作的文章:

http://stjhimy.com/posts/10-five-quick-steps-to-set-up-rvm-with-rails-2-and-rails3