删除游标缓存中的VM列表


111

我不是在寻找这个答案,因为我的问题是不同的。

当我键入内容时vagrant global-status,会得到一个虚拟机列表,但是其中一些目录和虚拟机以及Vagrantfiles已被删除。

但是,当我键入时vagrant destroy [machineid]出现以下错误,我正在寻求解决。请指教。

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

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

Answers:


247

您应该使用以下命令从全局索引中删除无效的条目:

vagrant global-status --prune

好吧,很高兴这是一个被接受并接受的答案,但这“修剪了”全局状态列表。这意味着该虚拟机不再显示在列表中。不过,VM本身保持不变。这意味着仍然必须手动注销并删除它。非常简单的事情应该是,无所事事的人在得到应有的待遇后才能正常工作$ vagrant destroy -f <id>
silverdr

的输出vagrant global-status --prune是正确的,以至于不知道已删除的Vagrant目录,因为当管理该VM的文件被删除时,Vagrant对它在该目录中管理的VM的了解已删除。现在是系统管理程序的问题。
bschlueter'8

谢谢!!我搜索了很长时间
Jean-Marc Amon

17

我也有这个问题。我可以通过修改的内容来修复它~/.vagrant.d/data/machine-index/index。它采用JSON格式,因此我只是删除了与不再存在的实例相关的数据。

我只删除了与不再存在的实例有关的数据。我不会修改与文件系统中存在的实例相关的任何数据。


我发现这对于清除全局状态框很有用,当我重新启动主机(我的mac)时,这些框通常不可用。这让我想知道全局状态会做什么,以及它是否会再次影响框框。
卡普兰

14

--prune没有为我工作。我删除~/.vagrant~/.vagrant.d.vagrant。并手动删除残留的VM。

我迁回gems,并boxes从原来的~/.vagrant.d。也许只能尝试从中删除计算机,.vagrant但我没有对此进行测试。


2
当删除了流浪汉图像的目录时,出现了这个问题。--prune失败,但rm -rf〜/ .vagrant *起作用。重新创建适当的目录后,请运行vagrant global-status。(这将删除所有已下载的框,因为它们将根据需要在下一个无所事事的地方重新下载)
Tommy Strand 2015年


0

我用了

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

我也删除了

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

并手动删除残留的VM(如果存在)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.