乘客使用错误的 Ruby 版本

Passenger use wrong Ruby version

我通过 rvm install 2.1.2 安装了 Ruby 2.1.2,但是 Passenger 使用的是 1.9.3,而我的 gem 不可用。

发现错误后,我尝试将 passenger_ruby 更改为 /usr/local/rvm/gems/ruby-2.1.2 但出现此错误:

App 30033 stderr: *** ERROR ***: Cannot execute /usr/local/rvm/gems/ruby-2.2.2: Permission denied (13)

所以我切换回正常的 Ruby 版本使用:

passenger_ruby /usr/bin/ruby;

然后 /usr/bin/ruby 我得到这个错误文档: http://jsfiddle.net/p3pde70d/

那么如何将 Passenger 的 Ruby 版本更改为 2.1.x?

可能需要在系统ruby下安装bundler。

sudo gem install bundler

尽管对于 运行 ruby 2.1.x,我建议不要在服务器设置中使用 rvm 或 rbenv。最好为该系统安装新版本的 ruby。我通常只会从源代码编译我想要的版本。不知道 OS 你在做什么,但是对于 debian 系统,可以这样做:

sudo apt-get install build-essential

这会获取所有必要的软件来编译 ruby。

cd ~
wget http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.2.tar.gz # you may need to install wget through apt-get

tar xvf ruby-2.2.2.tar.gz
cd ruby-2.2.2.tar.gz
./configure
sudo make
sudo make install

注意配置步骤中的错误。它会告诉您是否缺少任何进一步的依赖项。成功完成后,系统 ruby 应该会更新。从那里安装捆绑器:)