Vagrant über sudo apt-get install vagrant
installiert , und jedes Mal, wenn ich versuche, einen Vagrant-Befehl auszuführen, z. B. vagrant init precise32 http://files.vagrantup.com/precise32.box
Ich erhalte die folgende Fehlermeldung:
/home/novito/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- log4r (LoadError)
from /home/novito/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /usr/bin/vagrant:2:in `<main>'
Ich bin mir nicht sicher, warum sich rvm hier einmischt, aber na ja, ich hoffe, ihr könnt mir helfen, wie ich das lösen kann.
Akzeptierte Antwort:
Wenn Sie Vagrant mit apt-get
installiert haben Es hätte alle erforderlichen Abhängigkeiten für die Standard-Ubuntu-Paketversion von Ruby installiert. Aber Ihre Fehlermeldung zeigt das an, wenn Sie vagrant
ausführen es versucht, eine Version von Ruby (und seinen Gems) zu verwenden, die von RVM verwaltet wird, und nicht die Systemversion, und Ihrer Version von Ruby fehlt mindestens eine seiner Abhängigkeiten, log4r
.
Ich denke, Sie haben ein paar Möglichkeiten:
- Kehren Sie zur Verwendung der Systemversion (Standard-Ubuntu) von Ruby zurück, indem Sie etwas wie
rvm use system --default
ausführen um RVM standardmäßig zurückzusetzen und Ruby-Versionen nur zu ändern, wenn es nötig ist. - Wechseln Sie einfach zur Systemversion zurück, wenn Sie Vagrant ausführen, also führen Sie
rvm use system
aus bevor Sievagrant
ausführen in derselben Schale. - Identifizieren Sie alle Ruby Gems, von denen Vagrant abhängig ist, und installieren Sie sie manuell in Ihrer RVM-verwalteten Ruby-Installation. Dies wäre jedoch ein fummeliger Ansatz. Früher war es möglich, Vagrant selbst als Ruby Gem zu installieren, also hätten Sie es in Ihrer RVM-verwalteten Ruby-Installation installieren können, aber das wird nicht mehr unterstützt.
Siehe die Dokumentation zu den RVM-Befehlsoptionen für weitere Einzelheiten darüber, wie Sie steuern können, welche Version von Ruby Sie verwenden.