VitrualBox、vagrant、homestead的关系
其實可以這樣理解,你有了虛擬機(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
轉載于:https://www.cnblogs.com/cjjjj/p/10527488.html
總結
以上是生活随笔為你收集整理的VitrualBox、vagrant、homestead的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么Java、Python会成为程序员
- 下一篇: 【面试】彻底理解 IO多路复用