乘客使用错误的Ruby版本

时间:2015-05-07 18:30:21

标签: ruby-on-rails ruby nginx passenger

我通过Exception in thread "main" java.lang.ClassCastException: Examples.Family cannot be cast to java.util.Collection at Examples.Example3.main(Example3.java:9) 安装了Ruby 2.1.2,但Passenger使用的是1.9.3,我的宝石不可用。

发现错误后,我尝试将rvm install 2.1.2更改为passenger_ruby但我收到此错误:

/usr/local/rvm/gems/ruby-2.1.2

所以我使用:

切换回正常的Ruby版本
App 30033 stderr: *** ERROR ***: Cannot execute /usr/local/rvm/gems/ruby-2.2.2: Permission denied (13)

使用passenger_ruby /usr/bin/ruby; 我收到此错误文档: http://jsfiddle.net/p3pde70d/

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

1 个答案:

答案 0 :(得分:2)

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

sudo gem install bundler

虽然对于运行ruby 2.1.x,我建议不要在服务器设置中使用rvm或rbenv。为该系统安装新版本的ruby会更好。我通常只会从源代码编译我想要的版本。不知道你的操作系统是什么,但对于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。从那里安装bundler:)