如何将下载的.box文件添加到Vagrant?

时间:2014-02-27 10:29:03

标签: windows vagrant

如何将已下载的.box文件添加到Vagrant的可用框列表中? .box文件位于外部驱动器上。

我尝试运行vagrant box add my-box d:/path/to/box,但Vagrant将路径解释为URL。

8 个答案:

答案 0 :(得分:160)

解决方案:

vagrant box add my-box file:///d:/path/to/file.box

必须采用网址格式。

答案 1 :(得分:77)

您可以指向vagrant的文件夹并将box文件复制到同一位置。然后你可以运行如下

vagrant box add my-box name-of-the-box.box
vagrant init my-box
vagrant up

只是为了检查状态

vagrant status

答案 2 :(得分:24)

尝试将目录更改为.box已保存的位置

运行vagrant box add my-box downloaded.box,这可能会有效,因为它可以避免绝对路径(在Windows上?)。

答案 3 :(得分:6)

Windows解决方案:

  1. 以管理员
  2. 打开cmd或powershell
  3. 将CD放入包含.box文件
  4. 的文件夹中
  5. vagrant box add --name name_of_my_box 'name_of_my_box.box'
  6. vagrant box list应在列表中显示新框

答案 4 :(得分:3)

首先重命名Vagrantfile 然后

vagrant box add new-box name-of-the-box.box
vagrant init new-box
vagrant up

只需检查状态

vagrant status

仅此而已

答案 5 :(得分:2)

F:\PuppetLab\src\boxes>vagrant box add precise32 file:///F:/PuppetLab/src/boxes/precise32.box
==> box: Adding box 'precise32' (v0) for provider:
    box: Downloading: file:///F:/PuppetLab/src/boxes/precise32.box
    box: Progress: 100% (Rate: 1200k/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'precise32' (v0) for 'virtualbox'!

答案 6 :(得分:0)

或者添加下载框,可以创建一个带有元数据的json文件。这样,可以应用一些其他细节。例如,要导入框并指定其版本创建文件:

{
  "name": "laravel/homestead",
  "versions": [
    {
      "version": "7.0.0",
      "providers": [
        {
          "name": "virtualbox",
          "url": "file:///path/to/box/virtualbox.box"
        }
      ]
    }
  ]
}

然后使用参数:

运行vagrant box add命令
vagrant box add laravel/homestead /path/to/metadata.json

答案 7 :(得分:0)

只需添加另一种情况的描述。我必须将基于Vagrant Ubuntu 18.04的类似配置安装到多台Ubuntu计算机上。将vagrant upVagrantfile(其中指定了此框)一起使用,将.vagrant.d/boxes/ubuntu-VAGRANTSLASH-bionic64下载到bionic64框中,然后将文件夹private void textBoxt_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { datetimepicker1.Focus(); datetimepicker1.Select(); SendKeys.Send("%{DOWN}"); } } 复制到其他文件夹中。