Du läufst bundle exec
auf ein Programm. Die Schöpfer des Programms haben es geschrieben, als bestimmte Versionen von Gems verfügbar waren. Das Gemfile des Programms gibt die Versionen der Edelsteine an, die die Ersteller verwenden wollten. Das heißt, das Skript wurde so erstellt, dass es mit diesen Edelsteinversionen korrekt läuft.
Ihr systemweites Gemfile kann von diesem Gemfile abweichen. Es kann sein, dass Sie neuere oder ältere Gems haben, mit denen dieses Skript nicht gut zusammenarbeitet. Dieser Unterschied in den Versionen kann zu seltsamen Fehlern führen.
bundle exec
hilft Ihnen, diese Fehler zu vermeiden. Es führt das Skript mit den Gems aus, die in der Gemfile des Skripts angegeben sind, und nicht mit der systemweiten Gemfile. Es führt die bestimmten Gem-Versionen mit der Magie der Shell-Aliase aus.
Siehe mehr auf die Manpage .
Hier ist ein Beispiel für ein Gemfile:
source 'http://rubygems.org'
gem 'rails', '2.8.3'
Hier, bundle exec
würde das Skript mit der Rails-Version 2.8.3 ausführen und nicht mit einer anderen Version, die Sie möglicherweise systemweit installiert haben.