rvm current
は、特定のジェムセットに切り替えたと言います。gem list
にはrake
という宝石が1つのみ記載されています。なぜ、bundle exec
の前に追加する必要がありますか?ジェムセット使用時に `bundle exec`が必要な理由は?
$ rvm current
[email protected]
$ gem list rake
*** LOCAL GEMS ***
rake (10.4.2)
$ rake
rake aborted!
Gem::LoadError: You have already activated rake 10.4.2, but your Gemfile requires rake 11.1.2. Prepending `bundle exec` to your command may solve this.
/home/rm/.rvm/gems/[email protected]/gems/bundler-1.12.5/lib/bundler/runtime.rb:35:in `block in setup'
/home/rm/.rvm/gems/[email protected]/gems/bundler-1.12.5/lib/bundler/runtime.rb:20:in `map'
/home/rm/.rvm/gems/[email protected]/gems/bundler-1.12.5/lib/bundler/runtime.rb:20:in `setup'
/home/rm/.rvm/gems/[email protected]/gems/bundler-1.12.5/lib/bundler.rb:95:in `setup'
/home/rm/.rvm/gems/[email protected]/gems/bundler-1.12.5/lib/bundler/setup.rb:9:in `<top (required)>'
/home/rm/app/releases/20160707125838/config/boot.rb:3:in `<top (required)>'
/home/rm/app/releases/20160707125838/config/application.rb:1:in `<top (required)>'
/home/rm/app/releases/20160707125838/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
/home/rm/app/releases/20160707125838/config/boot.rb:3:in `<top (required)>'
/home/rm/app/releases/20160707125838/config/application.rb:1:in `<top (required)>'
/home/rm/app/releases/20160707125838/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
UPDは私が自分自身をより明確にしましょう。 rm
gemsetがアクティブですが、そこにはrake
という宝石しか表示されません(10.4.2
)。しかしrake-11.1.2
はbundler
でインストールされました。 bundle exec rake
を実行すると、rake-11.1.2
が呼び出されます。だから、私は宝石のリストでそれを見ないのですか?gem
によって報告されていますか?宝石のセットを別のものから分離するとは思われません。
ああ、それは生産マシンだと言いました。