本番サーバーで 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 の問題のようなものは見つかりませんでした。