RVM:为什么我的Ruby on Rails项目仍在运行Ruby版本1.9.3,即使我使用的是1.9.2?

时间:2012-04-03 16:57:23

标签: ruby apache rvm passenger

我正在使用Ruby on Rails 3.2.2和RVM(Ruby Version Manager)。通过使用RVM,我安装了2个Ruby版本:首先是1.9.3,然后是1.9.2。运行rvm use --default 1.9.2命令行后,我关闭并重新打开终端窗口。最后,我在终端窗口中运行以下命令行:

$ which ruby
/<MY_USER_PATH>/.rvm/rubies/ruby-1.9.2-p318/bin/ruby

$ ruby -v
ruby 1.9.2p318 (2012-02-14 revision 34678) [x86_64-darwin10.8.0]

但是,如果我在Ruby on Rails项目的视图文件中添加<%= "Ruby version #{RUBY_VERSION}" %>代码,我会得到Ruby version 1.9.3

为什么我的Ruby on Rails项目仍在使用Ruby版本1.9.3运行?如何使其在Ruby 1.9.2中运行?

2 个答案:

答案 0 :(得分:1)

Passenger不关心RVM,您需要使用您想要使用的Ruby版本编译Passenger,并按照其说明相应地设置Apache的配置。

如果要切换Ruby版本,则需要通过passenger-install-apache-module重新安装Passenger的Apache模块,然后按照说明操作。

您可能会看到Apache配置中的PassengerRuby指令指向特定的ruby

如果您需要与Passenger不同的Ruby版本,Phusion's blog post对此可能会有所帮助。 RVM's docs on Passenger integration也值得一读。

答案 1 :(得分:0)

我猜想Apache(Passenger?)正在使用你全球安装的Ruby版本,它看起来像ruby 1.9.2。做一个sudo su,然后尝试which ruby,看看你是否仍然指向ruby的RVM版本。该版本的Ruby是Apache正在使用的版本,您必须全局设置ruby以允许Apache(Passenger)使用它。