Vagrant2.2.6 和VirtualBox6.1.0不兼容问题解决办法
Posted liyante
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vagrant2.2.6 和VirtualBox6.1.0不兼容问题解决办法相关的知识,希望对你有一定的参考价值。
在安装完毕vagrant和virtualbox后,
执行命令
vagrant up时出现
No usable default provider could be found for your system.
Vagrant relies on interactions with 3rd party systems, known as
"providers", to provide Vagrant with resources to run development
environments. Examples are VirtualBox, VMware, Hyper-V.
The easiest solution to this message is to install VirtualBox, which
is available for free on all major platforms.
If you believe you already have a provider available, make sure it
is properly installed and configured. You can see more details about
why a particular provider isn‘t working by forcing usage with
`vagrant up --provider=PROVIDER`, which should give you a more specific
error message for that particular provider.
出现此错误提示未安装virtualbox,但实际已安装完毕。查资料发现存在版本兼容问题。但目前(今天2020.1.1)均是最新版本,后在github找到答案。
需要修改三处:
1、在/opt/vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/plugin.rb的文件内新增红色部分
module Driver
autoload :Meta, File.expand_path("../driver/meta", __FILE__)
autoload :Version_4_0, File.expand_path("../driver/version_4_0", __FILE__)
autoload :Version_4_1, File.expand_path("../driver/version_4_1", __FILE__)
autoload :Version_4_2, File.expand_path("../driver/version_4_2", __FILE__)
autoload :Version_4_3, File.expand_path("../driver/version_4_3", __FILE__)
autoload :Version_5_0, File.expand_path("../driver/version_5_0", __FILE__)
autoload :Version_5_1, File.expand_path("../driver/version_5_1", __FILE__)
autoload :Version_5_2, File.expand_path("../driver/version_5_2", __FILE__)
autoload :Version_6_0, File.expand_path("../driver/version_6_0", __FILE__)
autoload :Version_6_1, File.expand_path("../driver/version_6_1", __FILE__)
end
2、在/opt/vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver/meta.rb
的文件内新增红色部分
driver_map = {
"4.0" => Version_4_0,
"4.1" => Version_4_1,
"4.2" => Version_4_2,
"4.3" => Version_4_3,
"5.0" => Version_5_0,
"5.1" => Version_5_1,
"5.2" => Version_5_2,
"6.0" => Version_6_0,
"6.1" => Version_6_1,
}
3、在/opt/vagrant/embedded/gems/2.2.6/gems/vagrant-2.2.6/plugins/providers/virtualbox/driver
文件夹内新创建version_6_1.rb的文件,并在文件内添加如下信息:
require File.expand_path("../version_6_0", __FILE__) module VagrantPlugins module ProviderVirtualBox module Driver # Driver for VirtualBox 6.1.x class Version_6_1 < Version_6_0 def initialize(uuid) super @logger = Log4r::Logger.new("vagrant::provider::virtualbox_6_1") end end end end end
通过一系列修改后,可以正常执行。
以上是关于Vagrant2.2.6 和VirtualBox6.1.0不兼容问题解决办法的主要内容,如果未能解决你的问题,请参考以下文章
记录问题-VirtualBox6.1 下 配置 Ubuntu 16.04 多网卡
Linux 中VirtualBox6.0.8 仅主机模式不可用
CentOS8上安装virtualbox6并创建Windows10虚拟机
Linux-交叉编译工具链的制作(crosstool-ng-1.24),基于ubuntu16.04,虚拟机软件VM15.5pro或VirtualBox6.1.26