VitrualBox 是一款非常强大的免费虚拟机软件,使用者可以在 VitrualBox 上安装并运行 Linux、Windows、Mac OS X 等操作系统,类似的软件还有 VMware
Vagrant 是一个用于创建和部署虚拟化开发环境的工具,其依赖于 VirtualBox 虚拟机,致力于帮助开发者快速构建一个环境统一的虚拟系统。 Vagrant 可以将一整套虚拟环境封装在一个box 内,这样只要所有人都使用这个 box,大家的开发环境就实现统一了!而 Homestead 就是这样一个 Laravel 官方预装的适合 Laravel 开发的 Vagrant box 。 --------------------- 作者:蜗牛蜗牛慢慢爬 来源:CSDN 原文:https://blog.csdn.net/u014665013/article/details/77775911 版权声明:本文为博主原创文章,转载请附上博文链接!
其实可以这样理解,你有了虚拟机(VirtualBox),有了集成环境(homestead环境也就是vagrant box),那么你总需要把集成环境放到虚拟机上是吧。那么谁来做这个事情呢?必须要有人来做才行啊,不然的话,虚拟机是不会自己装环境的。vagrant 就是做这个事情的。
那么问题又来了,可能会有人问:
既然vagrant是用来装homestead的,那你为什么后来还要再装homestead呢?
这个问题其实我并不知道答案,但是根据我的理解,应该是这样的。
我们需要对本地文件和虚拟机上的文件进行同步,同时还要进行站点的搭建,VirtualBox、vagrant都不能做这个事情,这个事情就只能交由另外一个人来做了:homestead。
这里大家可能会有疑问:
你刚才说homestead是vagrant box,现在又说homestead是来对本地文件和虚拟机上的文件进行同步,同时还要进行站点的搭建的。这根本就是两个东西嘛,它到底是什么玩意。
其实可以这样理解,第一个homestead(vagrant box)是集成了laravel运行环境的一个box,这里面有php、mysql等等的软件,第二个homestead是控制本地文件和虚拟机上的文件进行同步,同时还要进行站点的搭建的。
从根本上来说,他们两个并不是同一个东西。
但想到这里我又产生了一个疑问:
既然vagrant是虚拟机和环境之间的桥梁,那如果我有10个虚拟机,1个环境,这个时候如果我执行
vagrant box add laravel/homestead
那么vagrant会把homestead安装到哪个虚拟机上呢?
我想这个应该不是个问题:
无论它把homestead安装到哪个虚拟机上,无论安装的是哪个环境,vagrant总是知道的,当我们需要使用虚拟机的时候,他会为我们开启相应的虚拟机,当然你如果不想做一个傻瓜,我猜设计者也提供了让你自己选择的操作了把。
后来我又想,大部分的时候我运行vagrant都是在homestead的目录下,那如果有一天homestead不流行了,大家都不用他了,那vagrant是不是也就凉了呢?
其实并不是的,两者并没有必要的联系。
vagrant 管理的是虚拟机,
那又有人会说,我为啥要vagrant管理虚拟机,virtualbox自己就有图形化界面,虚拟机的启动,关闭,销毁都可以由virtualbox来做,干嘛要vagrant来管理?
后来我想想,其实这个质疑并不是没有道理的。
但我们可以这样理解。当然virtualbox可以启动,关闭,销毁虚拟机,vagrant也可以不做这样的事情。但是谁来做把环境箱子挪到虚拟机这一步的操作呢?
当然还是vagrant !!!
累了,具体的原因在这个url上,明天接着学习吧。https://www.jianshu.com/p/050b0a4468c4、https://www.cnblogs.com/hafiz/p/9175484.html