Vagrant 手册之 box - 版本
从 Vagrant 1.5 版本起,box 开始支持版本。这运行创建 box 的人提交更新,使用 box 的人检查更新、更新 box 并查看变更记录。
对于 Vagrant 新手,box 版本并不重要,建议先去学习其他知识点。但是如果你在团队中使用 Vagrant 并且计划创建自己的 box,版本非常重要。幸运的是,Vagrant 内置版本控制功能易于使用,并很好地适应 Vagrant 工作流程。
本章讲解如何使用带版本的 box。如果想了解如何创建带版本的 box,请参考 创建基础 box。
1. 查看版本并更新
vagrant box list 只显示 box 的安装版本。如果查看 box 的可用版本,需要在 HashiCorp’s Vagrant Cloud 上查找 box。可用直接通过 URL https://vagrantcloud.com/$USER/$BOX 查找 box。例如,对于 hashicorp/precise64 这个 box,可用在 https://vagrantcloud.com/hashicorp/precise64 获取信息。
可用通过 vagrant box outdated 命令检查 box 是否已经过时。这可以检查当前 Vagrant 环境中的 box 是否过时以及系统上安装的任何其他 box。
可用通过 vagrant box update 命令更新 box。这会下载并安装新 box。这不会更新运行中的 Vagrant 环境。如果 Vagrant 环境已经在运行,必须销毁并重新创建它才能获取 box 中的更新,update 命令只是在本地下载这些更新。
2. 版本约束
可以通过在 Vagrantfile 中指定 config.vm.box_version 选项,限制 Vagrant 环境使用特定的一个或多个版本的 box。
如果未指定此选项,则相当于指定“>=0”的约束,始终使用最新版本。
box 版本配置可以是特定版本或几个版本。约束可以是以下任意组合:=X,>X,<X,>=X,<=X,~> X。可以通过用逗号分隔多个约束来组合多个约束。所有的约束条件应该是自我解释的,除了 ~>,称为“悲观约束”。例如:~> 1.0 相当于 > = 1.0,< 2.0。~> 1.1.5 相当于 > = 1.1.5,<1.2.0。
可以选择合适的版本处理方式。但是,公共目录中的许多 box 都遵循 语义版本控制。基本上,只有第一个数字(“主要版本”)打破向后兼容性。就 Vagrant box 而言,这意味着任何运行在 box “1.1.5”版本中的软件都应该在“1.2”和“1.4.5”中工作,但是“2.0”可能会引起重大变化。按照这个约定,最好的约束是 ~> 1.0,因为无论该版本在哪个范围内,都知道它是安全的。
注意,虽然 语义版本控制 规范允许超过三个点,并且支持 pre-release 及 beta 版本,但 Vagrant 框必须是 X.Y.Z 格式,其中 X,Y 和 Z 都是正整数。
3. 自动更新检查
使用 Vagrantfile,还可以配置 Vagrant 在任何 vagrant up 期间自动检查更新。这是默认启用的,但可以在 Vagrantfile 中通过 config.vm.box_check_update=false 轻松禁用。
启用此功能后,Vagrant 将在每次 vagrant 启动时检查更新情况,不在从头开始创建机器是检查,还在恢复运行时以及重启时检查更新。
如果发现更新,Vagrant 会向用户发出警告,让他们知道有更新可用。用户可以选择忽略该警告,或者可以通过运行 vagrant box update 来更新该 box。
Vagrant 不能也不会自动下载更新的机器并更新机器,因为机器可能相对较大,更新机器需要销毁机器并重新创建机器,这会导致重要数据丢失。因此,此过程是手动的,用户必须手动输入命令才能执行此操作。
4. 修剪旧版本
Vagrant 不会自动修剪旧版本,因为无法确认其是否可能被其他 Vagrant 环境使用。因为 box 可能很大,所以可能需要一段时间后通过使用 vagrant box remove 主动修剪它们。可以通过 vagrant box list 查看所有安装的 box。
另一种选择是使用 vagrant box prune 命令删除所有已经过期并且当前未使用的已安装 box。
Vagrant 手册之 box - 版本的更多相关文章
- Vagrant 手册之 box - box 的文件格式
原文地址 过去,box 只是 VirtualBox 导出的 tar 文件.由于 Vagrant 现在支持多个 provider 和版本控制,box 文件稍微复杂一些. 用于 Vagrant 1.0.x ...
- Vagrant 手册之 box - 创建基础 box
原文地址 有一种特殊的 box 被称为"base box".这些 box 包含 Vagrant 运作所需的最低限度,通常不是对现有的 Vagrant 环境("base b ...
- Vagrant 手册之 box - 概述
原文地址 box 是 Vagrant 环境中使用的包格式.box 可以在 Vagrant 支持的所有平台上被任何人使用,从而提供相同的工作环境. vagrant box 工具提供了管理 box 的所有 ...
- Vagrant 手册之 box - box 的信息格式
原文地址 创建 Vagrant 的 box 时,可以提供在运行 vagrant box list -i 时展示的与用户相关的其他信息.例如,可以打包 box,以包含有关该 box 的作者和网站信息: ...
- Vagrant 手册之 Vagrantfile - 配置版本
原文地址 配置版本是 Vagrant 1.1+(引入了大量新功能和配置选项) 能够与 Vagrant 1.0.x Vagrantfiles 保持向后兼容的机制. 现在运行 vagrant init 时 ...
- Vagrant 手册之 Vagrantfile - 机器设置 config.vm
原文地址 配置的命名空间:config.vm config.vm 中的设置修改 Vagrant 管理的机器的配置. 1. 可用的设置项 config.vm.boot_timeout Vagrant 等 ...
- Gpload安装手册(Linux版本)
Gpload安装手册(Linux版本) 一.python 2.7版本 Linux系统默认是安装python2.7的,如果没有需要手动安装(python版本要求2.4.4以上): 通过命令:python ...
- Vagrant 无法校验手动下载的 Homestead Box 版本
起因 4年前电脑,配置不太好了,现有的 Homestead 运行起来太吃内存.在修改了 Homestead.yaml 文件里 memory 选项的内存配置为 1024 后,应用最新配置重启失败. 索性 ...
- Vagrant 手册之 Vagrantfile - 最低版本
原文地址 可以在 Vagrantfile 中指定一组 Vagrant 的版本,以强制人们使用带有 Vagrantfile 的特定版本的 Vagrant.这可以帮助解决使用带有 Vagrantfile ...
随机推荐
- 魔板 (bfs+康托展开)
# 10027. 「一本通 1.4 例 2」魔板 [题目描述] Rubik 先生在发明了风靡全球魔方之后,又发明了它的二维版本--魔板.这是一张有 888 个大小相同的格子的魔板: 1 2 3 4 8 ...
- P1973 [NOI2011]Noi嘉年华
传送门 首先可以把时间区间离散化 然后求出 $cnt[l][r]$ 表示完全在时间 $[l,r]$ 之内的活动数量 设 $f[i][j]$ 表示当前考虑到时间 $i$,第一个会场活动数量为 $j$ 时 ...
- Angular.js 使用获取验证码按钮实现-倒计时
获取验证码界面效果如图: 需要实现以下逻辑 按钮不可选 --输入电话号码,按钮可选 --点击获取,进入倒计时,按钮不可选 --倒计时结束,回到初识状态 核心代码: var cd = 60; var t ...
- FCKeditor用在JSP中的几点注意事项
转自:https://blog.csdn.net/asinzy/article/details/3854127 本篇文章主要介绍了"FCKeditor用在JSP中的几点注意事项", ...
- Git 安装使用及基础命令
Git终端软件安装 1.下载windows上git终端,类似shell工具,下载地址:http://msysgit.github.io/ 2. 安装方法,打开文件,一路点击Next即可 3.安装完成, ...
- 通过css样式给表格tbody加垂直滚动条
tbody加滚动条实现思路: 1,把tbody设置成display:block,然后就对其高度设置一个固定值,overflow设置成auto. 2,把thead的tr设置成display:block. ...
- xxPay搭建步骤
随着电子商务的发展,移动支付也走进我们的日常生活,就像很多基础业务,如物流.云平台一样,我们现在做什么都离不开她.正因为如此,支付是当下最活跃最前沿的话题,很多流行的技术最早用来实现支付,很多新的业务 ...
- Python在线IDE | 谷歌Colaboratory云端IDE介绍
目录 1. 推荐阅读 2. 本文地址 3. 按 4. 使用篇 6. 教学篇 1. 推荐阅读 Python基础入门一文通 | Python2 与Python3及VSCode下载和安装.PyCharm破解 ...
- webpack webpack.config.js配置
安装指定版本的webpack npm install webpack@3.6 -g 安装live-server 运行项目插件 输入live-server 运行后自动打开网页 npm ins ...
- c++ sizeof的实现
c++中的sizeof,可以通过以下宏定义实现. #include <stdio.h> #define sizeof_T(T) ((size_t)((T*)0+1)) ///求类型的大小 ...