MacOS M2 Pro(最新Ventura系统)下Vagrant up执行失败求助
MacOS M2 Pro(最新Ventura系统)下Vagrant up执行失败求助
兄弟,我刚在M2 Pro的Ventura系统上踩过完全一样的坑!折腾了小半天终于搞定,给你捋捋解决办法:
首先得搞懂为啥报错:你看到的「Invalid host type 'player' specified」是因为Vagrant默认试图用VMware Player的模式调用vmrun工具,但咱们装的是VMware Fusion,两者的host类型不匹配,自然就报错了。
下面是具体的修复步骤:
1. 确保VMware插件是最新适配版
Vagrant和VMware Fusion的交互全靠vagrant-vmware-desktop插件,先检查并更新到最新版:
# 先查看已安装插件 vagrant plugin list # 如果插件不是最新,执行更新 vagrant plugin update vagrant-vmware-desktop # 要是之前装过旧版本甚至其他VMware插件,先卸载再重装更稳妥 vagrant plugin uninstall vagrant-vmware-desktop && vagrant plugin install vagrant-vmware-desktop
2. 告诉Vagrant用Fusion模式运行
有两种方式可以实现,选一种就行:
方式一:临时设置环境变量(单次生效)
在你执行vagrant up的终端里先跑这行命令:
export VAGRANT_VMWARE_DESKTOP_USE_VMRUN_FUSION=1
之后再运行vagrant up就可以了。
方式二:修改Vagrantfile(永久生效)
直接在你的VMware provider配置块里添加一行指定host类型,修改后的Vagrantfile如下:
Vagrant.configure("2") do |config| config.vm.box = "bytesguy/ubuntu-server-20.04-arm64" config.vm.box_version = "1.0.0" config.vm.network "private_network", type: "dhcp" config.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)" config.vm.provider "vmware_desktop" do |vmware| # 新增这行,指定用Fusion作为host vmware.host = "fusion" vmware.gui = true vmware.cpus = 2 vmware.vmx["ethernet0.virtualdev"] = "vmxnet3" vmware.ssh_info_public = true vmware.linked_clone = false vmware.allowlist_verified = true end end
保存修改后,再执行vagrant up应该就能正常启动虚拟机了。另外提一句,你选的bytesguy/ubuntu-server-20.04-arm64这个box是适配M2的arm架构,这点没问题不用改。
备注:内容来源于stack exchange,提问作者Javid Karimov
相关产品推荐
相关产品推荐

