Liste der VMs im Vagrant-Cache entfernen


111

Ich suche diese Antwort nicht, weil meine Frage anders ist.

Wenn ich vagrant global-statustippe, erhalte ich eine Liste von VMs, aber einige dieser Verzeichnisse und VMs wurden zusammen mit den Vagrant-Dateien gelöscht.

Aber wenn ich tippe vagrant destroy [machineid], erhalte ich den folgenden Fehler, den ich beheben möchte. Bitte beraten.

The working directory for Vagrant doesn't exist! This is the
specified working directory:

/Users/steven/projects/php/vagrant-laravel

Antworten:


247

Sie sollten den folgenden Befehl verwenden, um ungültige Einträge aus dem globalen Index zu entfernen:

vagrant global-status --prune

Gut, dass es eine akzeptierte und positiv bewertete Antwort ist, aber dies "beschneidet" die globale Statusliste. Dies bedeutet, dass die VM nicht mehr in der Liste angezeigt wird. Die VM selbst bleibt jedoch unberührt. Das heißt, man muss die Registrierung noch aufheben und manuell löschen. Die sehr einfache Sache sollte sein, dass Vagabund seine Arbeit richtig macht, wenn gegeben$ vagrant destroy -f <id>
Silverdr

Die Ausgabe von vagrant global-status --pruneist korrekt, um gelöschte Vagrant-Verzeichnisse nicht zu kennen, da Vagrants Kenntnis der in diesem Verzeichnis verwalteten VM entfernt wurde, als die Dateien, die die VM verwalten, vorhanden waren. Es ist jetzt das Problem des Hypervisors.
bschlueter

Vielen Dank!! Ich habe lange danach gesucht
Jean-Marc Amon

17

Ich hatte auch dieses Problem. Ich konnte es beheben, indem ich den Inhalt von änderte ~/.vagrant.d/data/machine-index/index. Es ist im JSON-Format, daher habe ich nur die Daten entfernt, die sich auf nicht mehr vorhandene Instanzen beziehen.

Ich habe nur die Daten entfernt, die sich auf nicht mehr vorhandene Instanzen beziehen. Ich würde keine Daten ändern, die sich auf eine Instanz beziehen, die im Dateisystem vorhanden ist.


Ich fand dies nützlich, um nur die globalen Statusfelder zu löschen, die normalerweise deaktiviert sind, wenn ich den Host (meinen Mac) neu starte. Ich frage mich, was der globale Status bewirkt und ob er sich darauf auswirkt, die Box wieder auf Vordermann zu bringen.
Kaplan

14

--prunehat bei mir nicht funktioniert. Ich entfernt ~/.vagrant, ~/.vagrant.dund .vagrant. Und manuell verbleibende VMs entfernt.

Ich bin zurück gemsund boxesvom Original gewandert ~/.vagrant.d. Vielleicht kann man versuchen, nur die Maschine zu entfernen, .vagrantaber das habe ich nicht getestet.


2
Ich hatte dieses Problem, als das Verzeichnis, in das das Vagabundbild gestarrt wurde, gelöscht wurde. --prune fehlgeschlagen, aber rm -rf ~ / .vagrant * hat funktioniert. Ausführen des vagabundierenden globalen Status, nachdem die entsprechenden Verzeichnisse neu erstellt wurden. (Dies entfernt alle heruntergeladenen Boxen, damit sie bei Bedarf beim nächsten Vagabund erneut heruntergeladen werden.)
Tommy Strand

1

Verwenden vagrant box remove -f [name]

Es klappt. Garantiert!


0

ich benutzte

vagrant global-status --prune
vagrant box remove -f [name]

Auch ich habe entfernt

~/.vagrant, ~/.vagrant.d and .vagrant. 

Und manuell entfernte verbleibende VMs, falls vorhanden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.