[转帖]vagrant 添加带版本号的 box
vagrant 添加带版本号的 box
https://www.jianshu.com/p/12cf1ecb224b 第三种好用
前言
众所周知,vagrant 添加 box 需要访问国外的服务器,然而国外的服务器总是那么的慢慢慢.....但是那个速度真的是不想吐槽。所以就有了本地添加 box 的需求,所以就有了以下的内容。
为什么一定要强调版本号呢?如果使用过 Homestead 的朋友们,那么你就会知道其中的酸爽。
以下内容完全从零开始的,如果只是特定问题,可直接跳过会的内容,从问题出看起。
目标
该文章最终的目标是添加一个带版本号的box,效果如下:
准备工作
- 初始化一个虚拟机
- 获取对应的
box下载地址 - 使用下载工具下载该
box
初始化一个虚拟机
在 https://app.vagrantup.com 中有很多的 box 可供我们下载使用,你可以搜索你想要的 box,我这里使用的是 centos/7。
$ vagrant init centos/7
在执行上面的目录处会多以下文件:
Vagrantfile就是vagrant的配置文件,我们也可以直接配置该文件对虚拟机进行初始化。
获取对应的 box 下载地址
$ vagrant up
以上命令用于启动虚拟机,如果你的PC上没有安装过
centos/7(可以通过vagrant box list命令查看是否安装过),就会从https://vagrantcloud.com去下载centos/7,如果有centos/7就会从本机获取。
执行完上面的命令后,会出现以下内容:
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'centos/7' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'centos/7'
default: URL: https://vagrantcloud.com/centos/7
==> default: Adding box 'centos/7' (v1809.01) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/1809.01/providers/virtualbox.box
default: Download redirected to host: cloud.centos.org
default:
注意上面的 default: Downloading ... 后面紧跟着有一个 url 地址,那个就是 centos/7 box的下载地址。
注意着的版本号为:
v1809.01,下面我们会用到。
使用下载工具下载该 box
作者这里使用的是:迅雷极速版。当然你们也可以使用其他的下载工具。
添加 vagrant box
常规方案(不推荐)
在vagrant的命令中,我们可以知道vagrant box add [options] <name, url, or path>这个一个命令。我们
进入到 virtualbox.box 下载目录,并执行以下内容:
vagrant box add centos/7 ./virtualbox.box
然后我们使用以下命令查看:
$ vagrant box list
centos/7 (virtualbox, 0)
我们可以看到 centos/7 已经添加到了本地,那么这个有什么问题呢?
问题
注意到 (virtualbox, 0),这个 0 就是指的版本号,这跟它真是的版本号不符。
那么我们该怎么做才能添加正确的版本号呢?有两种方案:
- 从上面的基础上进行修改;
- 通过
metadata.json方式(推荐)。
正确的添加方案
根据 常规方案 修改(不推荐)
作者使用的是
win10操作系统,对使用Mac OS的朋友们的情况不是很清楚。
打开 资源管理器 (俗称我的电脑),在你的 C 盘下的用户名下有一个 .vagrant.d/boxes 目录,添加的 box 会加载到这来,结果如下:
这里的 centos-VAGRANTSLASH-7 就是我们刚才添加的 box,打开目录:
这里的 0 就是版本号,我将它修改为: 1809.01 (上面有记载),然后使用命令查看:
$ vagrant box list
centos/7 (virtualbox, 1809.01)
注意到上面的版本号,就由原来的 0 变成了现在的 1809.01。
通过 metadata.json 方式(推荐)
如果执行过
常规方案的,使用以下方式清除box:$ vagrant box remove centos/7
首先进入到 box 的下载目录,新建一个文件 metadata.json:
{
"name": "centos/7",
"versions": [{
"version": "1809.01",
"providers": [{
"name": "virtualbox",
"url": "./virtualbox.box"
}]
}]
}
name添加的box名字version:版本号providers.name:虚拟主机类型providers.url:box地址
metadata.json准备完成后,执行以下命令添加:
$ vagrant box add metadata.json
输出以下结果:
==> box: Loading metadata for box 'metadata.json'
box: URL: file://D:/vagrant/box/metadata.json
==> box: Adding box 'centos/7' (v1809.01) for provider: virtualbox
box: Downloading: ./centos7.box
box:
==> box: Successfully added box 'centos/7' (v1809.01) for 'virtualbox'!
查看添加的 box 列表:
$ vagrant box list
centos/7 (virtualbox, 1809.01)
总结
就此,整篇文档就到此结束了,我们总结下要领:
- 使用常规方法添加时,需要正确的找到
.vagrant.d/boxes,并确认刚才添加的box,最后进行版本修改; - 使用
metadata.json方式,注意整个metadata.json中不能有注释的内容,注意各个参数的准确性。
[转帖]vagrant 添加带版本号的 box的更多相关文章
- vagrant 添加带版本号的 box
众所周知,vagrant添加box的时候要从外网下载,那速度...(说多了都是泪),所以只好用下载工具下载到本地之后再添加. 如何搭建 homestead:https://laravelacademy ...
- 百度地图API 批量添加 带检索功能的信息窗口
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 烂泥:puppet添加带密码的用户
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前一篇文章,我们介绍了有关puppet3.7的安装与配置,这篇文章我们再来介绍下如何利用puppet添加带密码的用户. 要通过puppet添加带密码的用 ...
- 【maven】之打包不带版本号的问题
今天在写maven项目的时候发现打包没有带版本号,只有包名 百思不得其解,我翻看之前的项目发现并没有这种情况,最后看了一下文档 发现是自己在build中写了fileName 导致的!删除自定义的fi ...
- vue-cli3 每次打包都改变css img js文件名,还有自带版本号
let Version = new Date().getTime(); css: { // 是否使用css分离插件 ExtractTextPlugin extract: { //一种方式,打包后的cs ...
- 利用gradle添加构建版本号
在java的程序中,貌似都没有这个构建版本号的概念,用的诸如eclipse, idea和android studio的IDE也没有直接提供构建版本号的选项.不过我却想在android程序的版本号当中添 ...
- 在word2010中添加带滚动条的文本框
由于文件内容过长,为了加强文章的可读性,可以添加一个带滚动条的文本框,既能使文章看起来干净整洁,同时也极大的提高了文章的可读性. 我这里对在word2010中文本框带滚动条作个介绍: 1. 打开wor ...
- Kubernetes添加带Quota限额的CephFS StorageClass
1. 在Ceph上为Kubernetes创建一个文件系统 # ceph osd pool create cephfs_data # ceph osd pool create cephfs_metada ...
- 百度API的经历,怎样为多个点添加带检索功能的信息窗口
不管我们要做什么样的效果,APIKey(密钥)都是不可缺少的要件,所以我们需要先去百度申请我们的APIKey!!! 伸手党,请直接到页面底部获取完整代码! 最近做一个门店查询的内容展示,考虑到用户直观 ...
随机推荐
- 2019 大众书网Java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.大众书网等公司offer,岗位是Java后端开发,因为发展原因最终选择去了大众书网,入职一年时间了,也成为了面 ...
- 有些CRM settype用事务码COMM_ATTRSET打不开的原因
This question is asked by Dr. Lin. Issue For example, settype COM_COMMERCIAL could be opened via tco ...
- 01GitLab的使用——创建项目并上传到GitLab
借鉴:https://jingyan.baidu.com/article/9c69d48fe68cce13c9024e9c.html 登录GitLab网站,创建一个项目上传地址:https://blo ...
- 不要让事实妨碍好故事:Facebook精准广告产品与硅谷创业揭秘,4星奇书《混乱的猴子》
“ 现在,和往常一样,一些有先见之明的学者看到了这一天会再次到来,他们把这次全新的媒体中世纪化过程命名为“第二次口口相传”(Secondary Orality)和“古登堡右括号”(the Gu ...
- Rikka with Travels(2019年杭电多校第九场07题+HDU6686+树形dp)
目录 题目链接 题意 思路 代码 题目链接 传送门 题意 定义\(L(a,b)\)为结点\(a\)到结点\(b\)的路径上的结点数,问有种\(pair(L(a,b),L(c,d))\)取值,其中结点\ ...
- CSP 201812-2 小明放学
问题描述: 解题思路: 由于数据的量较大,需要使用long long来存储结果,否则会爆掉结果只能得到一部分的分 可以类比时钟,将红绿灯的变换当成时钟的运转,这样用模运算来断定红绿灯在到达时处于什么颜 ...
- Python学习进阶之薄弱点总结
''' 1.实现用户传入一个普通字符串, 返回字符串的md5加密结果的函数 ''' # import hashlib # # def M(str): # m = hashlib.md5() # m.u ...
- P1908 逆序对-(cdq分治)
https://www.luogu.org/problem/P1908 沿用归并排序的思想求逆序对. 坑1:结果爆int型,需要用longlong 坑2:相对于归并排序,在比较的时候多了一个等号 举例 ...
- Educational Codeforces Round 78 (Rated for Div. 2) B. A and B
链接: https://codeforces.com/contest/1278/problem/B 题意: You are given two integers a and b. You can pe ...
- 【java异常】定时任务异常ERROR 20604 --- [ scheduling-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task
2019-11-20 13:20:00.006 ERROR 20604 --- [ scheduling-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unex ...