4

私はRuby on Railsに比較的慣れていません。

アプリを実行しようとすると問題が発生します。次のエラーが発生します。

* エラー * : /usr/local/rvm/wrappers/ruby-1.8.7-p174@soda/ruby を実行できません: そのようなファイルまたはディレクトリはありません (2)

これは本当です; そのようなディレクトリはありません。-というファイルがあり、 /usr/local/rvm/wrappers/ruby-1.8.7-p174@DACE/rubyこれはまさに私が使用したい gem ファイルです。

私が理解しているように、.rvmrcファイルはgemファイルのディレクトリを指定しています。ただし、この場合、 は.rvmrc次のようになります。

rvm --create use  "ruby-1.8.7-p174@DACE"

さらに、実際に宝石の道であるrvm info彫像。/usr/local/rvm/gems/ruby-1.8.7-p174@DACE

では、なぜこの存在しないパスを探す必要があると考えるのでしょうか?

前もってありがとう、ティム

4

2 に答える 2

1

a を実行して、rvm current使用している ruby​​ のバージョンと gemset を確認します。次に実行rvm gemset listして、作成した gemset を確認します。sodaがリストされていない場合は、rvm gemset create sodaこの gemset を作成するために a を実行します。
この.rvmrcファイルを削除してから、別のファイルを作成してください。(これによってプロジェクトが壊れることはありません。ruby と gem のプロジェクト参照が削除されるだけです)。
この回答を読んで、rvm の仕組みをよりよく理解することができます。リンクがあります。

プロジェクトのルート フォルダに rvmrc ファイルを作成するにはどうすればよいですか?

于 2013-08-19T17:06:47.367 に答える
0

Nginx と Passenger を使用して Rails プロダクション マシンをセットアップしているときに、同じ問題が発生しました。これが私が問題を解決した方法です。

  1. Passenger gem がインストールされていることを確認してから、cd でプロジェクト ディレクトリに移動し、次のコマンドを実行します。
passenger-config build-native-support --help

次のような出力が得られます。

使用法: Passenger-config build-native-support [オプション]

Phusion Passenger は、native_support と呼ばれる Ruby ネイティブ拡張機能を利用して、Ruby のパフォーマンスを向上させます。拡張子は Phusion Passenger のバージョンと Ruby のバージョンに依存します。通常、Phusion Passenger のバージョンを以前に遭遇したことのない Ruby バージョンで実行するたびに、その Ruby バージョンの native_support ライブラリが再構築されます。このコマンドを実行すると、native_support を現在の Ruby インタープリター用に強制的にビルドできます。

現在の Ruby インタープリターは次のとおりです。

Path: /home/deploy/.rvm/gems/ruby-x.x.x@gemset/wrappers/ruby
Version: 2.1.5

オプション: -h、--help このヘルプを表示

  1. 出力からパスをコピーし、nginx 構成ファイルに貼り付けます。私の場合、それは /etc/nginx/nginx.conf にありました

    Passenger_ruby /home/deploy/.rvm/gems/ruby-xxx@gemset/wrappers/ruby

  2. 最後に、サーバーを再起動するか、展開スクリプトを実行します。

于 2015-11-21T03:34:48.830 に答える