How to add a downloaded .box file to Vagrant?
WindowsVagrantWindows Problem Overview
How do I add a downloaded .box
file to Vagrant's list of available boxes? The .box
file is located on an external drive.
I tried running vagrant box add my-box d:/path/to/box
, but Vagrant interprets the path as a URL.
Windows Solutions
Solution 1 - Windows
Solution:
vagrant box add my-box file:///d:/path/to/file.box
Has to be in a URL format.
Solution 2 - Windows
You can point to the folder where vagrant and copy the box file to same location. Then after you may run as follows
vagrant box add my-box name-of-the-box.box
vagrant init my-box
vagrant up
Just to check status
vagrant status
Solution 3 - Windows
Try to change directory to where the .box
is saved
Run vagrant box add my-box downloaded.box
, this may work as it avoids absolute path (on Windows?).
Solution 4 - Windows
Solution for Windows:
- Open the cmd or powershell as admin
- CD into the folder containing the
.box
file vagrant box add --name name_of_my_box 'name_of_my_box.box'
vagrant box list
should show the new box in the list
Solution for MAC:
- Open terminal
- CD into the folder containing the
.box
file vagrant box add --name name_of_my_box "./name_of_my_box.box"
vagrant box list
should show the new box in the list
Solution 5 - Windows
Alternatively to add downloaded box, a json file with metadata can be created. This way some additional details can be applied. For example to import box and specifying its version create file:
{
"name": "laravel/homestead",
"versions": [
{
"version": "7.0.0",
"providers": [
{
"name": "virtualbox",
"url": "file:///path/to/box/virtualbox.box"
}
]
}
]
}
Then run vagrant box add
command with parameter:
vagrant box add laravel/homestead /path/to/metadata.json
Solution 6 - Windows
First rename the Vagrantfile then
vagrant box add new-box name-of-the-box.box
vagrant init new-box
vagrant up
Just to check status
vagrant status
that's all
Solution 7 - Windows
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'!
Solution 8 - Windows
Just to add description for another one case. I've got to install similar Vagrant Ubuntu 18.04 based configurations to multiple Ubuntu machines. Downloaded bionic64 box to one using vagrant up
with Vagrantfile
where this box was specified, then copied folder .vagrant.d/boxes/ubuntu-VAGRANTSLASH-bionic64
to others.