【问题标题】:Removing list of vms in vagrant cache删除 vagrant 缓存中的虚拟机列表
【发布时间】:2014-08-17 20:58:52
【问题描述】:

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

当我输入 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

【问题讨论】:

    标签: vagrant


    【解决方案1】:

    我用过

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

    我也删除了

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

    如果存在,则手动删除挥之不去的虚拟机。

    【讨论】:

      【解决方案2】:

      使用vagrant box remove -f [name]

      它有效。保证!

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 我发现这对于清除全局状态框很有用,当我重新启动主机(我的 Mac)时,这些框通常会关闭。这让我想知道 global-status 的作用以及它是否会影响再次打开盒子。
        【解决方案4】:

        --prune 对我不起作用。我删除了~/.vagrant~/.vagrant.d.vagrant。并手动删除了挥之不去的虚拟机。

        我从原来的~/.vagrant.d 迁移回gemsboxes。也许可以尝试只从.vagrant 删除机器,但我没有测试。

        【讨论】:

        • 我在删除 vagrant image 所在的目录时遇到了这个问题。 --prune 失败但 rm -rf ~/.vagrant* 工作。重新创建适当的目录后运行 vagrant global-status。 (这会删除所有下载的盒子,以便在下一个 vagrant up 时根据需要重新下载)
        【解决方案5】:

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

        vagrant global-status --prune
        

        【讨论】:

        • 嗯,很高兴这是一个被接受和赞成的答案,但这会“修剪”全局状态列表。这意味着 VM 不再显示在列表中。但是,VM 本身保持不变。这意味着仍然必须手动取消注册和删除它。非常简单的事情应该是 vagrant 在给定 $ vagrant destroy -f <id> 时可以正常工作
        • vagrant global-status --prune 的输出是正确的,因为当其管理 VM 的文件被删除时,Vagrant 对其在该目录中管理的 VM 的了解已被删除,因此不知道已删除的 Vagrant 目录是正确的。现在是管理程序的问题。
        • 谢谢!!这个我找了很久
        猜你喜欢
        • 2013-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        相关资源
        最近更新 更多