41 votes

Ne peut pas installer les plugins dans Ubuntu

J'ai essayé d'installer les plugin vbguest, mais n'a obtenu erreurs suivantes dans le terminal:

$ vagrant plugin install vbguest
Installing the 'vbguest' plugin. This can take a few minutes...
/usr/lib/ruby/2.3.0/rubygems/specification.rb:946:in `all=': undefined method `group_by' for nil:NilClass (NoMethodError)
    from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:275:in `with_isolated_gem'
    from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:231:in `internal_install'
    from /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb:102:in `install'
    from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:62:in `block in install_plugin'
    from /usr/lib/ruby/vendor_ruby/vagrant/plugin/manager.rb:72:in `install_plugin'
    from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:37:in `call'
    from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call'
    from /usr/lib/ruby/vendor_ruby/vagrant/action/builder.rb:116:in `call'
    from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:in `block in run'
    from /usr/lib/ruby/vendor_ruby/vagrant/util/busy.rb:19:in `busy'
    from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:66:in `run'
    from /usr/share/vagrant/plugins/commands/plugin/command/base.rb:14:in `action'
    from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:32:in `block in execute'
    from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:in `each'
    from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:31:in `execute'
    from /usr/share/vagrant/plugins/commands/plugin/command/root.rb:56:in `execute'
    from /usr/lib/ruby/vendor_ruby/vagrant/cli.rb:42:in `execute'
    from /usr/lib/ruby/vendor_ruby/vagrant/environment.rb:268:in `cli'
    from /usr/bin/vagrant:173:in `<main>'

J'utilise Virtual Box 5.0.18_Ubuntu r106667 et ruby 2.3.0p0. J'ai aussi été confronté au même problème en essayant d'installer sahara plugin. Comment puis-je résoudre ce problème?

67voto

arma Points 1297

Oui, il y a un problème: https://github.com/mitchellh/vagrant/issues/7073 en Vagrant 1.8.1

PR avec fix: https://github.com/mitchellh/vagrant/pull/7198

Le correctif devrait être publié en Vagrant 1.8.2.


Mais jusqu'à ce que vous pouvez corriger manuellement.

Voici les étapes pour résoudre Vagrant 1.8.1 sous Ubuntu 16.04 qui a ruby 2.3.0.

1.) Créer le fichier vagrant-plugin.patch avec le contenu suivant:

---
 lib/vagrant/bundler.rb | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
index 5a5c185..c4a3837 100644
--- a/lib/vagrant/bundler.rb
+++ b/lib/vagrant/bundler.rb
@@ -272,7 +272,6 @@ module Vagrant

       # Reset the all specs override that Bundler does
       old_all = Gem::Specification._all
-      Gem::Specification.all = nil

       # /etc/gemrc and so on.
       old_config = nil
@@ -286,6 +285,8 @@ module Vagrant
       end
       Gem.configuration = NilGemConfig.new

+      Gem::Specification.reset
+
       # Use a silent UI so that we have no output
       Gem::DefaultUserInteraction.use_ui(Gem::SilentUI.new) do
     return yield

2.) Appliquer le correctif:

sudo patch --directory /usr/lib/ruby/vendor_ruby/vagrant < vagrant-plugin.patch

qui résout /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb.

18voto

steinkel Points 961

Au lieu de patcher, j'ai résolu le problème en utilisant l'errance des v1.8.0 dans ubuntu 16.04:

  • Package de téléchargement: wget https://releases.hashicorp.com/vagrant/1.8.0/vagrant_1.8.0_x86_64.deb
  • sudo dpkg -i vagrant_1.8.0_x86_64.deb
  • vagrant plugin install vagrant-vbguest

Gardez un œil et mettre à jour 1.8.2 quand il est sorti... Profitez-en!

8voto

kenorb Points 2464

Ceci est corrigé dans la version récente de l'Errance, alors veuillez le mettre à jour.

Si vous ne pouvez exécuter cette commande pour régler le problème:

sudo sed -i'' "s/Specification.all = nil/Specification.reset/" /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb

Remarque: L' sudo autorisation est requise ou sans racine.

Ce sera un patch sur votre bundler.rb le fichier comme par PR (#7198).

Vous devez également mettre à niveau votre bundler d'au moins 1.12.5 que par ce vagabond PR (#7404):

sudo gem install bundler --version ">= 1.12.5"

2voto

Moosh Points 153

J'ai la même erreur avec un autre plugin: vagrant-triggers

J'ai trouvé un patch à appliquer sur /usr/lib/ruby/vendor_ruby/vagrant/bundler.rb.

mais alors, vagrant entrer dans une grande boucle et essayer infiniment pour installer le package.

0voto

Frederick Nord Points 689

Parce que personne ne semble avoir mentionné jusqu'à présent, voici le voici le rapport de bug pour Ubuntu 16.04: https://bugs.launchpad.net/ubuntu/+source/vagabond/+bug/1562696

A partir de maintenant, personne ne intégré le patch pour 16.04, il semble donc soit le patch manuellement ou télécharger un paquet corrigé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X