执行以下命令后,.box文件会发生什么?

vagrant box add lucid32 http://files.vagrantup.com/lucid32.box

我找不到lucid32。框文件在文件系统上下载完成后。


正如文档中提到的,盒子存储在:

Mac OS X和Linux: ~/.vagrant.d/boxes Windows: C: /用户/用户名/ .vagrant.d /盒


在Windows上,位置可以在这里找到。我没有在互联网上找到任何关于这个的文档,这对我来说并不是很明显:

C:\Users\\{用户名}\\.vagrant.d\box


在Mac/Linux系统上,成功下载的方框位于:

~/.vagrant.d/boxes

不成功的盒子位于:

~/.vagrant.d/tmp

在Windows系统中,它位于Users文件夹下:

C:\Users\%userprofile%\.vagrant.d\boxes

希望这能有所帮助。谢谢


要改变路径,你可以设置一个新的路径为一个名为: VAGRANT_HOME

export VAGRANT_HOME=my/new/path/goes/here/

这也许很好,如果你想有那些流浪图像在另一个硬盘。

更多信息请参见文档:http://docs.vagrantup.com/v2/other/environmental-variables.html


一旦下载和安装完成,实际的.box文件就会被Vagrant删除。正如在其他答案中提到的,在下载时,.box文件被存储为:

~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

其中文件名是“box”,后面跟着一个40字节的十六进制散列。例如,我系统上的一个临时文件是:

~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f

据我所知,这个文件从来没有用*保存。框扩展,这就解释了为什么上面的搜索没有找到它。有两种方法来检索实际的box文件:

Download the .box file from vagrantcloud.com Find the box you're interested in on the atlas. For example, https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1 Replace the domain name with vagrantcloud.com. So https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1 becomes https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box. Add /providers/virtualbox.box to the end of that URL. So https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1 becomes https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box Save the .box file Use the .box as you wish, for example, hosting it yourself and pointing config.vm.box_url to the URL. OR Get the .box directly from Vagrant This requires you to modify the ruby source to prevent Vagrant from deleting the box after successful download. Locate the box_add.rb file in your Vagrant installation directory. On my system it's located at /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb Find the box_add function. Within the box_add function, there is a block that reads: ensure # Make sure we delete the temporary file after we add it, # unless we were interrupted, in which case we keep it around # so we can resume the download later. if !@download_interrupted @logger.debug("Deleting temporary box: #{box_url}") begin box_url.delete if box_url rescue Errno::ENOENT # Not a big deal, the temp file may not actually exist end end Comment this block out. Add another box using vagrant add box <boxname>. Wait for it to download. You can watch it save in the ~/.vagrant.d/tmp/ directory as a boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX file. Rename the the file to something more useful. Eg, mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box.

你为什么想要这个?

对我来说,这对于检索.box文件非常有用,这样它就可以托管在本地快速的基础设施上,而不是从HashiCorp的Atlas盒子目录或其他盒子提供商下载。

这真的应该是默认Vagrant功能的一部分,因为它有一个非常明确的用例。


有一个更简单的方法来获取。box文件。

只需登录https://atlas.hashicorp.com/boxes/search,搜索你想下载的盒子。注意方框的URL,例如:

https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1

然后你可以像这样使用URL下载这个框:

https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box

我尝试并成功下载了我需要的所有盒子。希望能有所帮助。


除了

Mac:
~/.vagrant.d/

Windows:
C:\Users\%userprofile%\.vagrant.d\boxes

您必须删除VirtualBox/OtherVMprovider中的文件才能重新开始。


在带有Vagrant 2.2.2的Windows 10上,设置环境变量VAGRANT_HOME将确保盒子被下载到VAGRANT_HOME指定文件夹的子文件夹中。

在我的例子中,我将VAGRANT_HOME设置为e:\ VAGRANT_HOME,并且盒子存储在e:\ VAGRANT_HOME \boxes下。

这对我很有用。

那是盒子存放的地方。虚拟机正在virtual Box中配置的文件夹中创建。VirtualBox虚拟机存储文件夹的设置路径为:VirtualBox GUI——> File——> Preferences——> General——>默认机器文件夹。