执行以下命令后 .box 文件会发生什么?
vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
lucid32.box
下载完成后在文件系统上找不到文件。
执行以下命令后 .box 文件会发生什么?
vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
lucid32.box
下载完成后在文件系统上找不到文件。
如文档中所述,盒子存储在:
~/.vagrant.d/boxes
C:/Users/USERNAME/.vagrant.d/boxes
在 Mac/Linux 系统上,成功下载的盒子位于:
~/.vagrant.d/boxes
和不成功的盒子位于:
~/.vagrant.d/tmp
在 Windows 系统上,它位于用户文件夹下:
C:\Users\%userprofile%\.vagrant.d\boxes
希望这会有所帮助。谢谢
要更改路径,您可以为环境变量设置一个新路径,名为:VAGRANT_HOME
export VAGRANT_HOME=my/new/path/goes/here/
如果您想在另一个 HDD 上拥有这些 vagrant-Images,那可能会很好。
文档中的更多信息:http: //docs.vagrantup.com/v2/other/environmental-variables.html
下载和盒子安装完成后,实际.box
文件会被 Vagrant 删除。如其他答案中所述,在下载时, .box 文件存储为:
~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
其中文件名是“box”,后跟一个 40 字节的十六进制哈希。例如,我系统上的一个临时文件是:
~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f
据我所知,此文件从未使用*.box
扩展名保存,这解释了为什么上面的搜索未能找到它。有两种方法可以检索实际的 box 文件:
从 vagrantcloud.com 下载 .box 文件
vagrantcloud.com
. 所以https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
变成https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box。/providers/virtualbox.box
到该 URL 的末尾。所以 https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1变成了 https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.boxconfig.vm.box_url
URL。或者直接从 Vagrant 获取 .box
这需要你修改 ruby 源,以防止 Vagrant 在成功下载后删除该框。
/Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
box_add
函数中,有一个块读取:
确保 # 确保我们在添加临时文件后删除它, # 除非我们被打断,在这种情况下,我们将其保留在 # 以便我们稍后可以恢复下载。if !@download_interrupted @logger.debug("Deleting temporary box: #{box_url}") begin box_url.delete if box_url rescue Errno::ENOENT # 没什么大不了的,临时文件可能实际上不存在 end end
vagrant add box <boxname>
。~/.vagrant.d/tmp/
您可以观看它作为文件保存在目录中boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
。mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box
。对我来说,这对于检索 .box 文件很有用,因此它可以托管在本地、快速的基础设施上,而不是从HashiCorp 的 Atlas box 目录或其他 box 提供商下载。
这确实应该是默认 Vagrant 功能的一部分,因为它有一个非常明确的用例。
@Luke Peterson:有一种更简单的方法来获取 .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 _ _
我尝试并成功下载了我需要的所有盒子。希望有所帮助。
在 Windows 上,可以在此处找到该位置。我没有在互联网上找到任何文档,这对我来说并不是很明显:
C:\Users\\{username}\\.vagrant.d\boxes
此外
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 VM 存储文件夹,请转到:VirtualBox GUI --> File --> Preferences --> General --> Default Machine Folder
.