Cal*_*eng 259 virtualbox virtual-machine vagrant
执行以下命令后,.box文件会发生什么?
vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
Run Code Online (Sandbox Code Playgroud)
lucid32.box
下载完成后,我无法在文件系统上找到该文件.
Arb*_*zar 75
在Mac/Linux系统上,成功下载的框位于:
~/.vagrant.d/boxes
Run Code Online (Sandbox Code Playgroud)
和不成功的盒子位于:
~/.vagrant.d/tmp
Run Code Online (Sandbox Code Playgroud)
在Windows系统上,它位于"用户"文件夹下:
C:\Users\%userprofile%\.vagrant.d\boxes
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助.谢谢
sut*_*her 44
要更改路径,可以设置名为VAGRANT_HOME的环境变量的新路径
export VAGRANT_HOME=my/new/path/goes/here/
Run Code Online (Sandbox Code Playgroud)
如果你想在另一个硬盘驱动器上安装那些流浪汉图像,那也许很好.
更多信息,请参见文档:http://docs.vagrantup.com/v2/other/environmental-variables.html
Luk*_*son 20
.box
下载和框安装完成后,Vagrant将删除实际文件.如其他答案中所述,在下载时,.box文件存储为:
~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
其中文件名是'box',后跟40字节的十六进制哈希.例如,我系统上的临时文件是:
~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f
Run Code Online (Sandbox Code Playgroud)
据我所知,这个文件永远不会与*.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
函数中,有一个块读取:
确保#确保我们在添加后删除临时文件,#除非我们被中断,在这种情况下我们将其保留#所以我们可以稍后恢复下载.如果!@download_interrupted @ logger.debug("删除临时框:#{box_url}")开始box_url.delete如果box_url rescue Errno :: ENOENT#没什么大不了的,临时文件可能实际上并不存在
vagrant add box <boxname>
.~/.vagrant.d/tmp/
作为boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
文件保存在目录中.mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box
.对我来说,这对于检索.box文件很有用,因此它可以托管在本地快速基础设施上,而不是从HashiCorp的Atlas盒子目录或其他盒子提供商下载.
这确实应该是默认Vagrant功能的一部分,因为它具有非常确定的用例.
小智 15
@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
我尝试并成功下载了我需要的所有盒子.希望有所帮助.