virtualbox+vagrant学习-5-Boxes-2-Box Versioning
Box Versioning
从Vagrant 1.5版本开始, box支持版本控制。这允许创建box的人将更新推送到box中,使用box的人有一个简单的工作流,用于检查更新、更新box以及查看发生了什么更改。
如果你刚刚开始使用Vagrant,那么box版本控制并不十分重要,我们建议你先学习一些其他主题。但是,如果你在团队中使用vagrant,或者计划创建自己的boxes,版本控制非常重要。幸运的是,将版本控制内建到vagrant中可以使其易于使用并很好地适应vagrant工作流。
本页面将介绍如何使用版本化的boxes。它不包括如何用版本更新你自己的自定义box。这将在创建一个基本box中介绍。
1.Viewing Versions and Updating查看版本和更新
vagrant box列表只显示已安装的boxes版本。如果你想查看一个box的所有可用版本,就必须在HashiCorp的Vagrant Cloud上找到该box。找到一个box的一个简单方法是使用url https://vagrantcloud.com/$USER/$ box。例如,对于hashicorp/precise64 box,你可以在https://vagrantcloud.com/hashicorp/precise64中找到关于它的信息。
你可以使用 vagrant box outdated命令检查你正在使用的box是否过时。这可以检查当前vagrant环境中的box是否过时,以及系统上安装的其他box是否过时。
最后,你还可以使用 vagrant box update命令更新框。这将下载并安装新box。这不会神奇地更新正在运行的vagrant环境。如果一个vagrant环境已经在运行,你将不得不销毁并重新创建它,以便在该box中获得新的更新。更新命令只在本地下载这些更新。
2.Version Constraints版本限制
你可以通过使用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而言,这意味着任何运行在vagrant box版本“1.1.5”中的软件都应该在“1.2”和“1.4.5”等版本中工作,但是“2.0”可能会引入破坏软件的重大更改。通过遵循这个约定,最好的约束是~> 1.0,因为你知道无论哪个版本在这个范围内都是安全的。
请注意,虽然语义版本控制规范允许有三个以上的点和预发布或beta版本,但vagrant box必须是 X.Y.Z 格式,其中X Y Z都是正整数。
3.Automatic Update Checking自动更新检查
使用Vagrantfile,你还可以配置Vagrant,以便在任何vagrant up命令运行 时自动检查更新。默认情况下是启用的,但是可以通过在Vagrantfile文件中设置config.vm.box_check_update = false来轻松禁用。
当启用此功能时,Vagrant将检查每一个vagrant的更新,不仅是在从头创建机器时,在机器恢复时、停止后启动时等等也如此。
如果发现更新,Vagrant会向用户输出警告,让他们知道更新可用。该用户可以选择暂时忽略警告,也可以通过运行vagrant box update来更新该框。
Vagrant不能也不会自动下载更新后的box并更新机器,因为box可能比较大,更新机器需要销毁并重新创建机器,这可能会导致重要数据丢失。因此,这个过程是手动的,用户必须手动输入命令才能完成。
4.Pruning Old Versions删除旧版本
vagrant不会自动删除旧版本,因为它不知道它们是否被其他vagrant环境使用。因为box可能很大,你可能想要偶尔使用vagrant box remove命令来积极修剪他们。你可以看到所有使用vagrant box list命令查看到所有安装的box。
另一个选项是使用vagrant box prune命令删除所有已安装的过时且当前未使用的box。
virtualbox+vagrant学习-5-Boxes-2-Box Versioning的更多相关文章
- virtualbox+vagrant学习-2(command cli)-26-vagrant share命令
Share share命令初始化了一个vagrant share会话,允许你与世界上任何一个人共享vagrant环境,允许在几乎任何网络环境中直接在vagrant环境中进行协作. 你可以在本博客的vi ...
- virtualbox+vagrant学习-2(command cli)-1-vagrant box命令
vagrant box 这是用于管理(添加.删除等)boxes的命令. box 是一个打包好的操作系统,是一个后缀名为 .box 的文件,其实是一个压缩包,里面包含了 Vagrant 的配置信息和 V ...
- virtualbox+vagrant学习-1-环境安装及vagrantfile的简单配置-Mac系统
在学习docker-machine时,发现需要使用到虚拟化平台,所以选择了使用virtualBox. 然后后面发现需要使用vagrant来在mac系统中作为虚拟机管理软件,所以下面将会简述我自己学习使 ...
- virtualbox+vagrant学习-2(command cli)-2-vagrant cloud命令--有问题
Cloud https://www.vagrantup.com/docs/cli/cloud.html 命令: vagrant cloud 这是用来管理与vagrant相关的任何东西的命令. 该命令的 ...
- virtualbox+vagrant学习-2(command cli)-8-vagrant Package命令
Package 格式: vagrant package [options] [name|id] 这将当前正在运行的VirtualBox或Hyper-V环境打包到一个可重用的box中.如果provide ...
- virtualbox+vagrant学习-4-Vagrantfile-5-Machine Settings
Machine Settings 配置命名空间:config.vm config.vm的设置将修改vagrant管理的机器的配置 Available Settings可用设置 config.vm.ba ...
- virtualbox+vagrant学习-2(command cli)-19-vagrant box命令
Status 格式: vagrant status [name|id] options只有 -h, --help 这将告诉你vagrant正在管理的机器的状态. 很容易就会忘记你的vagrant机器是 ...
- virtualbox+vagrant学习-3-Vagrant Share-3-SSH Sharing
SSH Sharing vagrant share通过向vagrant share提供--SSH标志,使远程SSH访问vagrant环境变得非常容易. 如果你想让同事访问你的SSH,以便对ops问题进 ...
- virtualbox+vagrant学习-5-Boxes-1-简介
Boxes boxes是vagrant环境的包格式.在vagrant支持的任何平台上,任何人都可以使用一个box来创建一个相同的工作环境.vagrant box实用程序提供了管理boxes的所有功能. ...
随机推荐
- VMwear安装Centos7详细过程
1.软硬件准备软件:推荐使用VMwear,我用的是VMwear 10镜像:CentOS7 硬件:因为是在宿主机上运行虚拟化软件安装centos,I3CPU双核.硬盘500G.内存4G以上. 2 ...
- [LeetCode]Find Bottom Left Tree Value
Find Bottom Left Tree Value: Given a binary tree, find the leftmost value in the last row of the tre ...
- MySQL 数据类型总结及选取准则
整数 整数有 TINYINT, SMALLINT, MEDIUMINT, INT 和 BIGINT 类型. 占用 8 , 16 24, ...
- python学习之老男孩python全栈第九期_day022知识点总结——初识面向对象
一. 面向对象的引入# 人狗大战 def person(name,HP,aggr,sex): person = { 'name':name, # 昵称 'HP':HP, # 生命值 'aggr':ag ...
- Bzoj3277:串
题面 传送门 Sol 广义\(sam\) 每个\(sam\)的状态开\(set\)记录属于哪些串 \(parent\)树上启发式合并\(set\) 然后每个串就在上面走,通过不停地跳\(parent\ ...
- Html5 填表 表单(二) input type 各种输入, 各种用户选择,上传等等泛输入用户交互
<input> 无限制输入 type 限制输入 type = 如下类型 type 后还可以跟一些属性: 如<input type=text max ...
- sql按中文数字排序
有表4张 建表和插入数据sql DECLARE @p_Building TABLE ( id INT , BidName ) ); DECLARE @p_Room TABLE ( id INT , R ...
- 远景平台开发者上线,专业API免费使用
远景平台开发者上线,欢迎大伙围观使用. 在开发者中心你可以做什么? 1.管理你的应用,通过APPKEY获取在线API.使用云中的数据和地图. 2.学习API的使用,包含API参考和部分例子(目前例子很 ...
- Wireframe Process
- Search Insert Position 查找给定元素在数组中的位置,若没有则返回应该在的位置
Given a sorted array and a target value, return the index if the target is found. If not, return the ...