【问题标题】:Passenger use wrong Ruby version乘客使用错误的 Ruby 版本
【发布时间】:2015-05-08 07:58:24
【问题描述】:

我通过rvm install 2.1.2 安装了 Ruby 2.1.2,但乘客使用 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?

【问题讨论】:

  • 欢迎来到 Stack Overflow。不要使用指向 jsfiddle 的链接来显示您遇到的错误。相反,复制堆栈跟踪并将其粘贴到您的问题中,正确格式化以使其可读。链接会腐烂,会损坏且无用,使您的问题对其他人毫无用处。
  • @theTinMan,我尝试将堆栈跟踪粘贴到此处,但格式不正确。也许您可以从 jsfiddle 粘贴 Stacktrace?
  • 这并不难,你只需要阅读格式化文本的帮助文档。

标签: ruby-on-rails ruby nginx passenger


【解决方案1】:

可能需要在系统 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

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

【讨论】:

  • 我使用 debian 7 :) 如何卸载 rvm?我应该重新安装整个服务器吗?还是只卸载rvm?
  • 不需要重新开始什么的。您可能需要重新安装乘客,但我不确定。对于 rvm rvm implode 应该可以解决问题。也可以只删除~ 下的.folder。请务必更新任何将 rvm 添加到路径的 bashrc 文件。
猜你喜欢
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
相关资源
最近更新 更多