我正在使用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中运行?
答案 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)使用它。