我在生产服务器上运行 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 的问题。