2

ここには、Ruby のバージョンと RVM に関する多くの質問があります。それらを調べましたが、特定の問題の解決策が見つかりません。

私の知る限り、RVM をインストールし、正しくセットアップ/構成しました。

$ ruby -v
ruby 1.9.3p362 (2012-12-25 revision 38607) [x86_64-darwin12.2.0]

ただし、bundle install を実行すると、次のメッセージが表示されます。

$ bundle install
Updating http://github.com/rails/prototype_legacy_helper.git
Fetching gem metadata from http://rubygems.org/......
Fetching gem metadata from http://rubygems.org/..
Enter your password to install the bundled RubyGems to your system: 
Using rake (10.0.3) 
Using RedCloth (4.2.9) 
Using i18n (0.6.1) 
Using multi_json (1.6.1) 
Using activesupport (3.2.12) 
Using builder (3.0.4) 
Using activemodel (3.2.12) 
Using erubis (2.7.0) 
...

...
Using eventmachine (1.0.0) 
Using excon (0.17.0) 
Installing factory_girl (3.6.2) 
Gem::InstallError: factory_girl requires Ruby version >= 1.9.2.
An error occurred while installing factory_girl (3.6.2), and Bundler cannot continue.
Make sure that `gem install factory_girl -v '3.6.2'` succeeds before bundling.

factory_girl requires Ruby version >= 1.9.2.私にとって、バンドルがRVMが使用するように設定されているルビーバージョンを尊重していないと思わせる重要な行があります。ただし、構成のどこで問題が発生したかはわかりません。これまで RVM で問題が発生したことはありません。確かに、gem install factory_girl -v '3.6.2'正しく動作しますが、バンドルは後でそれを認識しません。

factory_girl を手動でインストールした場合の出力:

$ sudo gem install factory_girl -v '3.6.2'
Password:
Successfully installed factory_girl-3.6.2
1 gem installed
Installing ri documentation for factory_girl-3.6.2...
Installing RDoc documentation for factory_girl-3.6.2...

バンドルを RVM とうまく連携させるにはどうすればよいですか?

4

3 に答える 3

2

一度確認して、実行したら正常に動作します

$ rvm --default use 1.9.2

于 2013-02-21T13:38:06.177 に答える
2

おそらく、rvm をまったく使用していないことが原因です。gem install を使用して、gem をシステムにインストールしました。root として rvm をインストールしなかった場合は、bundle を使用して gem をインストールする前に、Ruby のバージョンを設定する必要があります。

rvm がバンドルに対して完全に透過的に行うもの。適切に使用すると、バンドルは期待どおりに機能します。

システムから持っている可能性のあるすべての宝石を削除してみてください。次に、rvm のコマンドを使用して、次のような Ruby バージョンを使用します。

rvm use 1.9.2

次に、bundle install を実行します。=p

于 2013-02-21T14:46:13.263 に答える
2

2 つの要因:

  1. sudorubygems が使用する非 RVM コマンドまたは RVM 環境を使用しないでください。

  2. チェック.bundle/config- PATH/が含まれている場合、STANDALONEバンドラーは RVM gemset をスキップし、RVM スコープ外のローカル ディレクトリで追加のバンドラー分離をbundle install --system使用するよう強制されます。修正する必要があります。カピストラーノ バンドラー統合を使用する場合は、適切なフラグを設定する必要がありますset :bundle_flags, "--system"

于 2013-02-21T15:08:09.003 に答える