Vagrant 常用指令

今天开始摸了一下 laravel ,作为官方钦定的工具,homestead 是一定要装的,其中我们需要安装 vagrant 来管理包,这期间有一些坑想记录一下,毕竟,是在是太坑了

Vagrant box 指令

1.add

在实际使用中我们会使用指令 vagrant box add laravel/homestead 下载包,该操作会自动去云端库中查找 laravel/homestead 的最新版本,的那也正因为如此,会出现各种各样的问题,例如

  • 有时候下下来的包是面向 hyperv ,而非我们想要的 virtualbox 版本的
  • 我想下载稳定版的,咋给我下了个beta版本,我佛了
  • 我就是想下载指定的 box

为了解决这个问题,在添加包的时候就需要对这条指令稍加改造

vagrant box add laravel/homestead --provider virtualbox --box-version 8.0.0-alpha2
实际运行效果示意图

其中额外的参数解释为:

  • –provider 适用的虚拟机类型
  • –box-version 盒子版本

至于参数的内容填写什么,则需要去 Vagrant 官网的仓库上自行查找

https://app.vagrantup.com/boxes/search

比如线上的box仓库里,我们看到现在最新的box是这样的

那么我们就可以改造这段指令为

vagrant box add laravel/homestead --provider virtualbox --box-version 8.0.0

至于为啥会写这段,因为按照当时那一刻我学laravel-china的laravel5.8教程,会下载下来最新的没有virtualbox的包(没错,就是你,v8.0.0-alpha3 版本!!!),难受啊马飞;

还有就是,因为墙高的原因,这步下包会很慢,建议是搞一个梯子,否则这步最好是睡前执行,醒来完事儿。当然,很可能半道卡0速也不是没几率的,看我博客的其他文章就可以解决这个问题。

2.remove

若想删除某个已经安装的包,则需要执行 remove 指令移除,而实际上我们安装的 laravel/homestead 同类不同版本的包很多,删除的时候要想做到精准删除,则需要这样输入

vagrant box remove laravel/homestead --provider virtualbox --box-version 7.2.1
实际运行效果示意图

参数和 add 的时候是一致的,不在解释,根据情况删除即可

3.list

若想知道 Vagrant 到底安装了哪些包,则可以执行如下指令查看

vagrant box list
实际运行效果示意图

其他常用指令

命令行说明
vagrant init初始化 vagrant
vagrant up启动 vagrant
vagrant halt关闭 vagrant
vagrant ssh通过 SSH 登录 vagrant(需要先启动 vagrant)
vagrant provision重新应用更改 vagrant 配置
vagrant destroy删除 vagrant

在我们每次对 Homestead.yaml 文件进行了更改之后,都需要运行下面命令来使其更改生效:

> vagrant provision && vagrant reload
这是虚拟机在运行时的指令,要是虚拟机没启动,则把reload改成up
  • && 符号是 Bash 语法,起到拼接命令的作用,此处将三个命令连续执行
  • vagrant provision 是命令 Vagrant 重新加载 Homestead.yaml 配置;
  • vagrant reload 是重启虚拟机使更改生效。
暂无评论

曾经我是一名冒险家,直到我的膝盖中了一箭。

发表评论