Rimozione dell'elenco di VM nella cache vagabonda


111

Non sto cercando questa risposta, perché la mia domanda è diversa.

Quando vagrant global-statusdigito ottengo un elenco di vms, ma alcune di quelle directory e VM sono state eliminate insieme ai file Vagrant.

Ma quando digito vagrant destroy [machineid], ottengo il seguente errore, che sto cercando di risolvere. Si prega di avvisare.

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

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

Risposte:


247

È necessario utilizzare il seguente comando per rimuovere le voci non valide dall'indice globale:

vagrant global-status --prune

Bene, bello che sia una risposta accettata e votata positivamente, ma questo "elimina" l'elenco degli stati globali. Significa che la VM non viene più visualizzata nell'elenco. Tuttavia, la VM stessa rimane intatta. Significa che è ancora necessario annullare la registrazione ed eliminarlo manualmente. La cosa molto semplice dovrebbe essere che il vagabondo fa il suo lavoro correttamente quando viene dato$ vagrant destroy -f <id>
silverdr

L'output di vagrant global-status --pruneè corretto per non essere a conoscenza delle directory Vagrant cancellate poiché la conoscenza di Vagrant della VM gestita in quella directory è stata rimossa quando i suoi file che gestivano la VM erano. Adesso è il problema dell'hypervisor.
bschlueter

Grazie!! Ho cercato questo a lungo
Jean-Marc Amon

17

Ho avuto anche questo problema. Sono stato in grado di risolverlo modificando il contenuto di ~/.vagrant.d/data/machine-index/index. È in formato JSON, quindi ho appena rimosso i dati relativi alle istanze che non esistevano più.

Ho rimosso solo i dati relativi a istanze che non esistono più. Non modificherei alcun dato relativo a un'istanza esistente nel file system.


L'ho trovato utile solo per cancellare le caselle di stato globale, che di solito sono disattivate quando riavvio l'host (il mio Mac). Mi chiedo cosa faccia lo status globale e se abbia un effetto sul rialzo della scatola.
kaplan

14

--prunenon ha funzionato per me. Ho rimosso ~/.vagrant, ~/.vagrant.de .vagrant. E rimosse manualmente le VM persistenti.

Sono migrato indietro gemse boxesdall'originale ~/.vagrant.d. Forse si può provare solo a rimuovere la macchina da .vagrantma non l'ho testato.


2
Ho avuto questo problema quando la directory in cui era fissata l'immagine vagabonda era stata cancellata. --prune non è riuscito ma rm -rf ~ / .vagrant * ha funzionato. Esecuzione di vagrant global-status dopo aver ricreato le directory appropriate. (Questo rimuove tutte le caselle scaricate e verranno nuovamente scaricate al prossimo vagabondo, se necessario)
Tommy Strand,


0

ero solito

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

Inoltre ho rimosso

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

E rimosse manualmente le VM in sospeso, se esistenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.