Suppression de la liste des VM dans le cache vagrant

111

Je ne cherche pas cette réponse, car ma question est différente.

Quand je tape, vagrant global-statusj'obtiens une liste de vms, mais certains de ces répertoires et VM ont été supprimés avec les Vagrantfiles.

Mais lorsque je tape vagrant destroy [machineid], j'obtiens l'erreur suivante, que je cherche à résoudre. S'il vous plaît donnez votre avis.

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

/Users/steven/projects/php/vagrant-laravel
user710587
la source

Réponses:

247

Vous devez utiliser la commande suivante pour supprimer les entrées non valides de l'index global:

vagrant global-status --prune
Emyl
la source
Eh bien, bien que ce soit une réponse acceptée et votée, mais cela "élague" la liste du statut global. Cela signifie que la VM n'apparaît plus dans la liste. La VM elle-même reste cependant intacte. Cela signifie qu'il faut toujours se désinscrire et le supprimer manuellement. La chose très simple devrait être que le vagabond fait correctement son travail lorsqu'il est donné$ vagrant destroy -f <id>
silverdr
La sortie de vagrant global-status --pruneest correcte pour ne pas être au courant des répertoires Vagrant supprimés car la connaissance de Vagrant de la VM qu'il gérait dans ce répertoire a été supprimée lorsque ses fichiers gérant la VM l'étaient. C'est le problème de l'hyperviseur maintenant.
bschlueter
Merci!! J'ai cherché cela longtemps
Jean-Marc Amon
17

J'ai eu ce problème aussi. J'ai pu résoudre ce problème en modifiant le contenu de ~/.vagrant.d/data/machine-index/index. C'est au format JSON, donc je viens de supprimer les données liées aux instances qui n'existaient plus.

J'ai uniquement supprimé les données relatives aux instances qui n'existent plus. Je ne modifierais aucune donnée relative à une instance qui existe dans le système de fichiers.

Sarcastron
la source
J'ai trouvé cela utile pour simplement effacer les cases d'état global, qui sont généralement éteintes lorsque je redémarre l'hôte (mon mac). Cela me fait me demander ce que fait le statut mondial et s'il a un effet sur la remontée de la boîte.
kaplan
14

--prunen'a pas fonctionné pour moi. J'ai enlevé ~/.vagrant, ~/.vagrant.det .vagrant. Et les machines virtuelles persistantes supprimées manuellement.

J'ai migré en arrière gemset boxesde l'original ~/.vagrant.d. Peut-être que l'on peut essayer de supprimer uniquement la machine .vagrantmais je n'ai pas testé cela.

Akostadinov
la source
2
J'ai eu ce problème lorsque le répertoire dans lequel l'image du vagabond était regardée avait été supprimé. --prune a échoué mais rm -rf ~ / .vagrant * a fonctionné. Exécution de l'état global vagrant après avoir recréé les répertoires appropriés. (Cela supprime toutes les boîtes téléchargées pour qu'elles soient retéléchargées le prochain vagabond au besoin)
Tommy Strand
1

Utilisation vagrant box remove -f [name]

Ça marche. Garanti!

Pendragon
la source
0

j'ai utilisé

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

Aussi j'ai supprimé

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

Et les machines virtuelles persistantes supprimées manuellement si elles existent.

Mehmet Özkan YAVUZ
la source