使用Vagrant创建Linux虚拟机时遭遇FrozenError问题求助
问题
尝试用Vagrant创建Linux虚拟机,每次操作都会触发FrozenError,重装Vagrant也无法解决。错误日志如下:
Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'ubuntu/focal64' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0 ==> default: Loading metadata for box 'ubuntu/focal64' default: URL: https://vagrantcloud.com/ubuntu/focal64 ==> default: Adding box 'ubuntu/focal64' (v20230803.0.0) for provider: virtualbox C:/Users/Alex/.vagrant.d/gems/3.1.3/gems/rubyhacks-0.1.5/lib/rubyhacks.rb:342:in `-@': can't modify frozen String: "=" (FrozenError) from C:/HashiCorp/Vagrant/embedded/mingw64/lib/ruby/3.1.0/rubygems/requirement.rb:114:in `parse' from C:/HashiCorp/Vagrant/embedded/mingw64/lib/ruby/3.1.0/rubygems/requirement.rb:138:in `block in initialize' from C:/HashiCorp/Vagrant/embedded/mingw64/lib/ruby/3.1.0/rubygems/requirement.rb:138:in `map!' from C:/HashiCorp/Vagrant/embedded/mingw64/lib/ruby/3.1.0/rubygems/requirement.rb:138:in `initialize' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/box_collection.rb:280:in `new' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/box_collection.rb:280:in `block in find' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/box_collection.rb:278:in `map' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/box_collection.rb:278:in `find' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/box_add.rb:325:in `box_add' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/box_add.rb:293:in `add_from_metadata' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/box_add.rb:128:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builder.rb:180:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `block in run' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/util/busy.rb:19:in `busy' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `run' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/handle_box.rb:83:in `handle_box' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/handle_box.rb:42:in `block in call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/handle_box.rb:36:in `synchronize' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/handle_box.rb:36:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:127:in `block in finalize_action' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builder.rb:180:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `block in run' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/util/busy.rb:19:in `busy' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `run' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/call.rb:53:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/providers/virtualbox/action/check_virtualbox.rb:20:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builder.rb:180:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `block in run' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/util/busy.rb:19:in `busy' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `run' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/machine.rb:248:in `action_raw' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/machine.rb:217:in `block in action' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/environment.rb:631:in `lock' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/machine.rb:203:in `call' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/machine.rb:203:in `action' from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/batch_action.rb:86:in `block (2 levels) in run'
解决方案
- 删除冲突的gem目录:找到路径
C:/Users/Alex/.vagrant.d/gems/3.1.3/gems/rubyhacks-0.1.5,直接删除整个文件夹 - 清理Vagrant gem缓存:执行命令
vagrant gem cleanup - 重新执行虚拟机启动操作:运行
vagrant up
如果上述方法无效,可尝试手动添加box:
- 下载ubuntu/focal64的box文件
- 执行命令
vagrant box add ubuntu/focal64 本地box文件路径 - 再运行
vagrant up
内容的提问来源于stack exchange,提问作者Michael Scofield
相关产品推荐
相关产品推荐

