美文网首页
Vagrant+Virtualbox 踩坑 闪退&【No usa

Vagrant+Virtualbox 踩坑 闪退&【No usa

作者: 27岁未成年 | 来源:发表于2019-12-23 20:49 被阅读0次

    今天打算配置一个Vagrant+Virtualbox运行环境,然而各种坑

    1.下载Virtualbox

    地址:https://www.virtualbox.org/wiki/Downloads
    image.png

    我安装的是widows版本的
    安装好后直接运行

    1.下载Vagrant

    地址:https://www.vagrantup.com/downloads.html
    image.png

    同样是windows版本

    安装好后就开始入坑了

    坑1 vagrant运行

    由于第一使用vagrant 之前看的教程也都是直接接输入vagrant命令了,所以以为入口就是vagrant.exe
    然后就是点击vagrant.exe后各种闪退,闪退到怀疑人生。一波搜索,查到结果
    vagrant正确的打开方式是通过cmd

    image.png

    输入
    vagrant --help

    image.png
    可以看到vagrant支持的命令
    输入
    vagrant -v
    查看版本号
    image.png

    坑2 windows命令

    由于长期的使用linux服务器滚瓜烂熟了linux命令,回到windows就是傻眼了,我的vagrant安装在E盘,于是我想跳转到E盘我的安装目录下去创建文件夹
    于是我这样做


    image.png

    然后没有任何反应
    然后还有什么ll
    这里说下正确的命令

    1.进入目录直接输入盘   如:  E:  然后回车
    2.查看目录下现有文件  dir 命令
    3.创建新的文件夹  方法1   md +文件夹名   方法2   mkdir + 文件夹名称
    4.进入目录中的文件夹   cd 文件夹名
    
    image.png

    至于如果需要用到其他的命令就自己百度了我就不多说了
    成功进入vagrant目录创建了新的文件夹vagrantCentos7后进入第三坑

    坑3 vagrant up

    进入目录后
    执行 vagrant init centos/7


    image.png

    翻译一下


    image.png

    这样是正常的,可以看到目录下就有一个Vagrantfile了,然后执行vagrant up
    然后就出现了一堆错误提示


    image.png

    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.

    又是一波各种查文档,得到答案是版本的问题,但是没有明确指出vagrant2.2.6可搭配virtualbox哪些版本
    在一个https://blog.csdn.net/daxiang52/article/details/103518589
    里得到了答案
    vagrant2.2.6还没有支持到virtualbox6.1
    然后将6.1版的配置在里面,方法如下

    1.找到vagrant目录结构的下的如下文件我安装在E盘

    E:\Vagrant\embedded\gems\2.2.6\gems\vagrant-2.2.6\plugins\providers\virtualbox\plugin.rb
    在这个文件里增加6.1版本

    require "vagrant"
    
    module VagrantPlugins
      module ProviderVirtualBox
        class Plugin < Vagrant.plugin("2")
          name "VirtualBox provider"
          description <<-EOF
          The VirtualBox provider allows Vagrant to manage and control
          VirtualBox-based virtual machines.
          EOF
    
          provider(:virtualbox, priority: 6) do
            require File.expand_path("../provider", __FILE__)
            Provider
          end
    
          config(:virtualbox, :provider) do
            require File.expand_path("../config", __FILE__)
            Config
          end
    
          synced_folder(:virtualbox) do
            require File.expand_path("../synced_folder", __FILE__)
            SyncedFolder
          end
    
          provider_capability(:virtualbox, :forwarded_ports) do
            require_relative "cap"
            Cap
          end
    
          provider_capability(:virtualbox, :nic_mac_addresses) do
            require_relative "cap"
            Cap
          end
    
          provider_capability(:virtualbox, :public_address) do
            require_relative "cap/public_address"
            Cap::PublicAddress
          end
    
          provider_capability(:virtualbox, :snapshot_list) do
            require_relative "cap"
            Cap
          end
        end
    
        autoload :Action, File.expand_path("../action", __FILE__)
    
        # Drop some autoloads in here to optimize the performance of loading
        # our drivers only when they are needed.
        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
    
        module Model
          autoload :ForwardedPort, File.expand_path("../model/forwarded_port", __FILE__)
        end
    
        module Util
          autoload :CompileForwardedPorts, File.expand_path("../util/compile_forwarded_ports", __FILE__)
        end
      end
    end
    
    image.png

    增加了一行

    autoload :Version_6_1, File.expand_path("../driver/version_6_1", __FILE__)
    

    2.找到同一目录下的文件

    E:\Vagrant\embedded\gems\2.2.6\gems\ vagrant2.2.6\plugins\providers\virtualbox\driver\meta.rb


    image.png
    image.png

    增加

    "6.1" => Version_6_1,
    
    image.png

    3.当前目录下新建version_6_1.rb文件,文件内容如下:

    image.png

    内容

    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
    

    然后从新打开cmd在刚刚创建的目录行运行vagrant up 就好了


    image.png

    完!

    相关文章

      网友评论

          本文标题:Vagrant+Virtualbox 踩坑 闪退&【No usa

          本文链接:https://www.haomeiwen.com/subject/mtstoctx.html