Bundler is using a binstub that was created for a different gem. This is deprecated, in future versions you may need to `bundle binstub rspec` to work around a system/bundle conflict.
Auch andere Nutzer scheinen davon verwirrt zu sein, eine klare Erklärung des Problems und seiner Lösung konnte ich bisher nicht finden. Folgender Reset der Binstubs funktioniert für mich als Workaround:
rm -rf bin/* bundle exec spring binstub --all bundle binstub rspec-core --force]]>
bundle exec spring binstub --all
Um nun rake routes
oder rails generate
statt bin/rake routes
oder bin/rails generate
nutzen zu können, einfach die folgenden Funktionen in beispielsweise die bash_aliases eintragen:
rake() { if [ -f bin/rake ]; then bin/rake "$@"; else bundle exec rake "$@"; fi } rails() { if [ -f bin/rails ]; then bin/rails "$@"; else bundle exec rails "$@"; fi } rspec() { if [ -f bin/rspec ]; then bin/rspec "$@"; else bundle exec rspec "$@"; fi }
Mein Dankeschön für den Ansatz geht an Arne.
Um die ursprünglichen Varianten ohne Spring zu nutzen kann command
verwendet werden:
command rake routes]]>
rake routes rake aborted! You have already activated rake 10.1.1, but your Gemfile requires rake 10.1.0. Using bundle exec may solve this.
Stets bundle exec rake
einzugeben ist recht müßig. Zwar ließe sich die Rake-Version des Projekts aktualisieren, in vielen Situationen kann man das jedoch nicht ohne weiteres entscheiden. Ein Downgrade zur Wunschversion ist jedoch recht einfach:
gem uninstall rake Select gem to uninstall: 1. rake-10.1.1 2. rake-10.1.0 3. All versions > 1 Successfully uninstalled rake-10.1.1
Der Versionskonflikt ist somit behoben.
]]>