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
user710587
quelle

Antworten:

247

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

vagrant global-status --prune
Emyl
quelle
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.

Sarcastron
quelle
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.

akostadinov
quelle
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!

Pendragon
quelle
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.

Mehmet Özkan YAVUZ
quelle