1

でジェムセットを作成します

$ rvm gemset create r3
$ rvm gemset use r3
$ gem install rails -v3.2.13

この時点で

$ rails -v

今ショー

$ Rails 3.2.13

しかし、フォークしたプロジェクトにバンドルするたびに、

rails -v

を示しますRails 4.0.1- テストの実行時に問題のプロジェクトに問題が発生します
(4.0.1と競合し3.2.13ます)。

私の質問は-私のGemfileに次のものしかない場合です:

$ cat Gemfile
source 'https://rubygems.org'

gemspec

これはどうなっていますか?コマンドラインのルビーバージョンを そのままにして、に切り替え3.2.13ないようにするにはどうすればよいですか。4.0.14.0.13.2.13

4

2 に答える 2

1

バンドルは、Gemfile の制限と互換性のある最新バージョンの gem を見つけることによって機能します。この場合、これらの制限は gemspec ファイルから来ており、おそらく Rails の 3.2.13 以降のバージョンを許可しています。そのため、Rails の許可されている最新バージョン (4.0.1) が選択されます。ここでは、RVM 構成は関係ありません。

特定のフォークを Rails 3.2.13 にロックするには、以下を追加します。

gem 'rails', '3.2.13'

フォークの Gemfile に。これにより、バンドルを実行すると、ローカル バージョンが 3.2.13 にロックされます。

于 2013-11-04T03:13:30.857 に答える
0

if you wish to explicitly use different version of rails then the one that would be calculated from Gemfile then you need to use:

NOEXEC_DISABLE=1 rails ...

you can make it permanent for single shell session with:

export NOEXEC_DISABLE=1
rails ...

and to disable loading gems in versions calculated via Gemfile put it in you shell initialization file (like ~/.bash_profile or ~/.zlogin):

export NOEXEC_DISABLE=1

this happens because RVM installs gem rubygems-bundler which automatically analyzes your Gemfile when you run gem binaries and if a version specified via this file is available then it is loaded (even if it is specified only as dependency of your gems).

于 2013-11-04T04:06:21.163 に答える