Menu

如何升级 Homestead 盒子?

说明

为了提供实战课程的流畅学习体验,我们使用的是定制版的 Homestead 盒子,预装了一些教程里会使用到的软件,这些软件经常需要更新或者新增,每一次的变跟,都是一个新的盒子,你需要重新下载导入,并重新初始化环境。本文是针对已经使用本文档部署过 Homestead 环境,但是需要升级 Homestead 盒子的用户。如果你有此需求,请跟着我一步步操作。

第一步、备份

接下来的操作,将会完全删除正在使用的 Homestead 虚拟机。如果你按照课程的最佳实践来操作,我们的数据库表结构是通过 Migration 来生成的,数据库里的数据也是使用 Seed 来做假数据填充的,这些都存放在我们的代码中,而代码是通过 Homestead 将主机的文件夹目录映射到虚拟机里的,所以你应该不需要备份什么数据。

然而,如果你的数据库里有数据是你手动填入,或者因为其他原因不想被重置的话,请自行备份数据库。同样的,如果虚拟机里有其他配置,有备份的需要,也请在此时备份。

第二步、删除虚拟机

在主机的命令行,运行以下命令进入 Homestead 管理脚本的目录里:

> cd ~/Homestead

使用以下命令删除虚拟机:

> vagrant destroy

file

第三步、删除旧盒子

旧的虚拟机盒子我们已经不会用到,为了节省硬盘空间,我们将对其进行删除。

使用以下命令查看系统里所有的 Vagrant 盒子列表:

> vagrant box list

我们使用的是 lc/homestead 命名的盒子,因为接下来会导入更新的版本,所以这里可以将其他旧版本删除:

> vagrant box remove lc/homestead

第四步、下载并导入新盒子

请先 —— 下载最新版的 Homestead 虚拟机盒子

下载后的文件为 lc-homestead-6.1.1-2018090400.zip,请对其进行 zip 解压操作,解压成功后可以看到目录 lc-homestead-6.1.1-2018090400,此目录下包含两个文件:

  • virtualbox.box(教程定制化过的 Homestead 盒子)
  • metadata.json(盒子的导入配置文件)

注意:请必须解压到 非中文路径,有同学反馈中文路径会出现不可预知问题。

在解压目录中 lc-homestead-6.1.1-2018090400 运行以下命令导入 Box:

> vagrant box add metadata.json

如下图所示(当前盒子版本 lc-homestead-6.1.1-2018090400):

file

第五步、重新初始化

运行以下命令进入 Homestead 管理脚本的目录里:

> cd ~/Homestead

使用以下命令创建新的虚拟机:

> vagrant up

注:关于以上的命令,我们在第二步已经删除了 ~/Homestead 文件夹里的虚拟机,此时 vagrant up 命令是我们第一次在此文件夹下执行,会触发 创建 虚拟机的操作,虚拟机创建成功后,后续我们再执行 vagrant up 的话,会执行 启动 虚拟机的操作。

总结

更新完毕以后,因虚拟机是完全新建,你还需要重新进入你的项目,执行迁移、数据填充等操作,有数据备份的话,也请重新导入数据,这里就不一一诉说了。

本文章首发在 Laravel China 社区
上一篇 下一篇
讨论数量: 5
发起讨论


yanrui
虚拟机盒子下载地址失效?
0 个点赞 | 2 个回复 | 问答
vasar
按此教程 安装之后 提示找不到 box?
0 个点赞 | 3 个回复 | 问答
郝合心
教程逻辑不通?
0 个点赞 | 3 个回复 | 问答