1

我在生产服务器上运行 Ruby on Rails。不知何故,我相信服务器上的 Ruby 版本完全搞砸了。

虽然这通常不是问题,但当我尝试在服务器上安装回形针 gem 时,它会成为一个大问题。

最初,我将它添加到 Gemfile 并运行bundle install. 一切都成功完成,但是当我尝试访问该网站时,我在 Apache 日志文件中收到以下错误:

*** Exception PhusionPassenger::UnknownError in PhusionPassenger::Rack::ApplicationSpawner (Could not find paperclip-3.4.2 in any of the sources (Bundler::GemNotFound)) (process *****, thread #<Thread:********>):

不用说,这非常令人沮丧。当我bundle install再次运行时,我没有收到任何错误。但是,当我运行时sudo bundle install,一切都完成了,直到我到达回形针,我收到这样的错误(不是实际错误,但类似):

Paperclip does not support Ruby <= 1.9.2

此时,我被难住了。我跑了ruby -v,正如我所预料的,我收到了:

ruby 1.9.2p290 (****-**-** revision *****) [i686-linux]

纯属偶然,我也跑了sudo ruby -v,完全惊讶地看到:

ruby 1.8.7 (****-**-** patchlevel ***) [i486-linux]

我使用 RVM 管理 Ruby,只安装了 1.9.2。当我尝试使用 sudo 列出它们时,我收到“未找到 RVM”错误。

我是否正确假设在源中找不到回形针,因为它作为 sudo 用户执行并使用旧版本的 Ruby?在这一点上,我很困惑,非常感谢您提供的任何帮助。

不幸的是,我无法擦除服务器并重新开始。我应该从这里去哪里?我在网上搜索过,没有发现任何类似 sudo/no sudo 的问题。

4

1 回答 1

2

You can't use sudo with rvm, you need to use rvmsudo. So, when installing Passenger, you'd run `rvmsudo passenger-install-apache2-module.

Not sure what what OS you are using, but here's a guide geared toward setting up Apache/Passenger using RVM on CentOS.

于 2013-05-31T04:08:22.810 回答