1

本番サーバーで Ruby on Rails を実行しています。どういうわけか、サーバー上のRubyのバージョンが完全にめちゃくちゃになっていると思います。

通常は問題ありませんが、サーバーに paperclip gem をインストールしようとすると大きな問題になります。

まず、Gemfile に追加して実行しますbundle install。すべてが正常に完了しますが、Web サイトにアクセスしようとすると、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

rvm では使用できません。使用sudoする必要がありますrvmsudo。したがって、Passenger をインストールするときは、`rvmsudo Passenger-install-apache2-module.

どの OS を使用しているかはわかりませんが、CentOS で RVM を使用して Apache/Passenger をセットアップするためのガイドを次に示します。

于 2013-05-31T04:08:22.810 に答える