rvm current
은 특정 보석 세트로 전환했다고 말합니다. gem list
은 rake
보석을 하나만 나열하므로, 왜 앞에 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
에 의해보고 된 보석 목록에서 나는 그것을 볼 수없는 이유는 무엇입니까? 보석 세트가 보석 세트를 다른 것으로부터 격리시키는 것이 아닙니다.
아, 제작 기계라는 것을 잊어 버렸습니다.