资讯专栏INFORMATION COLUMN

vagrant 添加带版本号的 box

liaoyg8023 / 3523人阅读

摘要:为什么一定要强调版本号呢如果使用过的朋友们,那么你就会知道其中的酸爽。注意着的版本号为,下面我们会用到。那么我们该怎么做才能添加正确的版本号呢有两种方案从上面的基础上进行修改通过方式推荐。

前言

众所周知,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] 这个一个命令。我们

进入到 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 中不能有注释的内容,注意各个参数的准确性。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29507.html

相关文章

  • 安装 Homestead 可能会出现的一些 Problems

    摘要:解决方法在你的项目下修改文件,加入如下配置的名字需与盒子列表中的一致的版本号需与盒子列表中的一致是否检查更新然后即可。 最近我在公司的新电脑配置新的开发环境,从而了解了一下在安装 Homestead 可能会出现的问题。 一开始用的是 win7 ,但发现 win7 中使用 VirtualBox 会有不少 兼容性 的问题。 打开 VirtualBox 可能会出现 code E_FAIL ...

    wyk1184 评论0 收藏0
  • SimfaseDevEnv一个Vagrant构建的开发环境

    摘要:整体与很像,但是做了一些更改,为了更适应中国国内的开发网络环境。表示宿主机器的目录,表示环境目录。将虚拟机置于休眠状态。在开发过程中可能会需要增加多个站点来运行不同的开发程序。与扩展名重名,建议将的改成为佳。 SimfaseDevEnv 介绍 SimfaseDevEnv是为php开发者提供的开发环境,构建在vagrant之上;Vagrant的Vagrangfile配置文件是在Homes...

    Noodles 评论0 收藏0
  • Vagrant 系列一:安装配置

    摘要:启动,输入验证安装是否成功,如果出现版本信息表示成功。安装注意官方推荐的是。如果上述命令执行失败,需要确认是否是最新版本。和配置文件中的保持一致在目录下运行命令启动这个提示是冲突,更改即可。再执行,首次启动会有一个初始化过程查看状态。 如果是工程化开发,走正规军路子还是推荐使用 Homestead。下载Vagrant。官方下载地址 这里下载的是Windows版本的安装包。直接点击安装即...

    liuyix 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<