2015-05-07 70 views
1

我通过rvm install 2.1.2安装了Ruby 2.1.2,但乘客使用1.9.3,其中我的宝石不可用。我发现错误乘客使用错误的Ruby版本

后,我试图改变passenger_ruby/usr/local/rvm/gems/ruby-2.1.2但我得到这个错误:

passenger_ruby /usr/bin/ruby; 

和:

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

所以我使用切换回正常的Ruby版本与/usr/bin/ruby我得到这个错误文档: http://jsfiddle.net/p3pde70d/

那么我该如何改变Passenger的Ruby版本为2.1.x?

+0

欢迎来到Stack Overflow。不要使用jsfiddle的链接来显示你得到的错误。相反,复制堆栈跟踪并将其粘贴到您的问题中,正确格式化以使其可读。链接受到破坏,将会破坏并无用,使您对其他人无用的问题。 –

+0

@theTinMan,我试图在这里粘贴堆栈跟踪,但我没有正确格式化。也许你可以从jsfiddle粘贴Stacktrace? – Evolutio

+0

这并不难,你只需要阅读格式化文本的帮助文档。 –

回答

2

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

sudo gem install bundler 

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

sudo apt-get install build-essential 

,抓住所有必需的软件编译红宝石一样的东西。

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 

注意配置步骤中的错误。它会告诉你,如果你错过了任何进一步的依赖关系。成功完成后,应该更新系统红宝石。从那里安装捆绑软件:)

+0

我usw debian 7 :) 我该如何卸载rvm?我应该重新安装整个服务器吗?还是只卸载rvm? – Evolutio

+1

不需要重新开始或任何事情。您可能需要重新安装乘客,但我不确定。对于rvm'rvm implode'应该这样做。也可以删除'〜'下的.folder。确保更新任何将rvm添加到路径的bashrc文件。 – agmcleod