Vagrant 如何使用Hyper-V作为提供程序删除缓存的不存在的Virtualbox计算机?

Vagrant 如何使用Hyper-V作为提供程序删除缓存的不存在的Virtualbox计算机?,vagrant,hyper-v,Vagrant,Hyper V,我是在Windows10Pro下使用Vagrant的,首先是和Virtualbox提供商一起使用,并创建了一些框。然后因为我想测试Docker的Win,我不得不切换到Hyper V并卸载Virtualbox。过了一段时间,我手动删除了一些Virtualbox机器,或者重新调整了文件夹的用途,使它们不再包含Vagrantfile 当我尝试运行任何一个 流浪全球状态——修剪 或 流浪破坏-f xxxyyzzz 我得到这个错误: 请求支持计算机“默认”的提供程序“virtualbox”报告它在此系统上

我是在Windows10Pro下使用Vagrant的,首先是和Virtualbox提供商一起使用,并创建了一些框。然后因为我想测试Docker的Win,我不得不切换到Hyper V并卸载Virtualbox。过了一段时间,我手动删除了一些Virtualbox机器,或者重新调整了文件夹的用途,使它们不再包含Vagrantfile

当我尝试运行任何一个
流浪全球状态——修剪


流浪破坏-f xxxyyzzz

我得到这个错误:
请求支持计算机“默认”的提供程序“virtualbox”报告它在此系统上不可用。原因如下:
流浪汉无法检测到VirtualBox!确保VirtualBox已正确安装。Vagrant使用VirtualBox附带的VBoxManage二进制文件,并要求该文件在路径上可用。如果安装了VirtualBox,请查找VBoxManage二进制文件并将其添加到PATH环境变量。


我理解Vagrant想说的:安装virtualbox二进制文件,这样它就可以管理这些盒子了。但实际上,一开始就没有虚拟机,所以从注册表中删除它就足够了,因此不需要Virtualbox。
在我的情况下,有没有办法从注册表中删除缓存框?

vagrant将其管理的机器列表保存在以下位置下(这是针对Mac的,您需要查找针对windows的,因为我不完全确定路径)


在这个文件夹下,你会发现一个
索引
文件,它将列出缓存中的所有机器。它是一个JSon文件,并且列出了机器的提供程序,这样你就可以删除任何不是VirtualBox的东西

当我试图用vagrant+virtual box在我的Windows 10机器上安装Docker时,我遇到了类似的情况

我已卸载virtual box,但每次尝试运行“vagrant up”时都会出现相同的错误

请求支持计算机的提供程序“virtualbox” “默认值”是指报告它在此系统上不可用。原因是 如下所示:

流浪汉无法检测到VirtualBox!请确保VirtualBox已正确安装 安装。Vagrant使用随附的
VBoxManage
二进制文件 VirtualBox,并要求此文件在路径上可用。如果 VirtualBox已安装,请查找
VBoxManage
二进制文件并添加 它指向环境变量的路径

所以下面的过程救了我

步骤1:在“config.vm.box”行下添加vagrantfile中的下一行

第2步:从powershell或cmd开始如下所示的“漫游箱”调用

vagrant up --provider=hyperv
应该行的。我让流浪汉跟着这些步骤跑。 它必须是作为虚拟框保存在缓存或注册表中某处的提供程序。
在此处输入代码


资料来源:

是的,这也是我最初的想法,我只是希望有更优雅的解决方案。谢谢-花了很长时间才弄明白!
config.vm.define "hyperv"
vagrant up --provider=hyperv