laravel的guide上面有vagrant,但看了半天沒(méi)看得太懂。
例如我們平常用虛擬機(jī)器(virtualbox),得下載一個(gè)作業(yè)系統(tǒng)的鏡像來(lái)讓virtualbox安裝上並運(yùn)作。
vagrant建立的又得依賴(lài)virtualbox,所以我能理解為vagrant是一個(gè)作業(yè)系統(tǒng)鏡像的管理工具嗎?
但好像也不對(duì),比如laravel官方給得homestead,才600多M,連一個(gè)linux最小化系統(tǒng)也不止600M,而且裡面還包含了mysql php nginx redis memcache等等…
所以想請(qǐng)教下,vagrant到底是個(gè)什麼東東,homestead又是個(gè)什麼東東
小伙看你根骨奇佳,潛力無(wú)限,來(lái)學(xué)PHP伐。
VirtualBox相信很多人都用過(guò),它是一個(gè)虛擬化軟體,用來(lái)在我們的電腦上虛擬出一電腦來(lái),和VMware Workstation, kvm, xen等是一類(lèi)東西(專(zhuān)業(yè)點(diǎn)的說(shuō)法叫Hypervisor),不過(guò)它提供易用的介面(VMware也有),對(duì)各平臺(tái)的支援(Linux, Win, Mac),又非常的輕量,最關(guān)鍵的free呀,所以使用非常廣泛。
我們平常使用VirtualBox最常見(jiàn)的情況就是,自己電腦是個(gè)Win,想跑Linux,或者電腦是個(gè)Linux,要跑win上網(wǎng)銀啊,QQ什麼的win only之類(lèi)的,雖然有wine這樣的東東,可以在Linux下跑win下的軟體,但有個(gè)win系統(tǒng)穩(wěn)定性不更好麼,並且現(xiàn)在的電腦配置,完全不用擔(dān)心虛擬機(jī)消耗內(nèi)存CPU什麼的,你不用那才是浪費(fèi)呢,何況VirtualBox這麼輕量。個(gè)人體驗(yàn),弄個(gè)xp虛擬機(jī)跑QQ資源消耗比chrome或ff登??webQQ少,可惡的用了多少js。 。 。
對(duì)天天碼程式碼的苦逼程式設(shè)計(jì)師來(lái)說(shuō),VirtualBox就不能是簡(jiǎn)簡(jiǎn)單單的掛個(gè)Q這樣用了->_->
程式設(shè)計(jì)師搞最多的就是碼程式碼了,可能做很多項(xiàng)目,公司裡搞java的,php的,自己回家再玩?zhèn)€python什麼的,想體驗(yàn)下新版本的mongodb或者nginx,Emacs或者vim的配置啦,保不準(zhǔn)哪個(gè)專(zhuān)案前個(gè)版本的資料庫(kù)是mysql,下個(gè)版本用了postgresql, 這麼多東西全都搞在一起,裝在一個(gè)電腦上,肯定會(huì)被這各種配置環(huán)境搞的暈暈的,煩不勝煩。
怎麼辦呢,最好是每個(gè)項(xiàng)目都有一個(gè)乾淨(jìng)的開(kāi)發(fā)環(huán)境,只為這個(gè)項(xiàng)目,可是我們不可能為每個(gè)項(xiàng)目配一個(gè)電腦吧,有了,虛擬機(jī),給每一個(gè)項(xiàng)目配一個(gè)虛擬機(jī),開(kāi)發(fā)A的時(shí)候就啟A的虛擬機(jī),讓各個(gè)開(kāi)發(fā)環(huán)境互相獨(dú)立,乾乾淨(jìng)淨(jìng)。還有一個(gè)問(wèn)題,我們的專(zhuān)案有多個(gè)開(kāi)發(fā)人員,如何保障大家的開(kāi)發(fā)環(huán)境都一樣呢,總不能每個(gè)人都一個(gè)個(gè)點(diǎn)擊滑鼠,填寫(xiě)設(shè)定參數(shù),建好後上支一個(gè)個(gè)軟體安裝吧,這太麻煩了,太不geek了。我們要的是,環(huán)境只配置一遍,然後可以把這個(gè)環(huán)境打包deliver給別人,別人拿到後,直接開(kāi)來(lái)就可以用。那有沒(méi)有這樣的東西呢,肯定是有的,Vagrant,它就是用來(lái)幹這個(gè)的。
Vagrant 就是一個(gè)命令列版的虛擬機(jī)器管理程序,透過(guò)整合命令操作 VirtualBox / VMware 等虛擬機(jī)器程式來(lái)操作作業(yè)系統(tǒng)。 Homestead 就是官方整合環(huán)境的虛擬作業(yè)系統(tǒng),可以直接在 VirtualBox / VMware 上運(yùn)作。我不知道你說(shuō)的一個(gè) Linux 最小化系統(tǒng)是什麼,不過(guò)一個(gè) Ubuntu Server 也就 570M,所以 600M 應(yīng)該是正常的。
vagrant是一個(gè)虛擬機(jī)器管理軟體。他可以讓你的一臺(tái)或多臺(tái)虛擬機(jī)器可以迅速的部署以及複製。是提供多環(huán)境開(kāi)發(fā)下面一個(gè)不錯(cuò)的選擇,特別是你本身處?kù)秝in平臺(tái)下,又想以最小的代價(jià)搭建linux虛擬機(jī)環(huán)境,vagrant是一個(gè)不錯(cuò)的選擇。
Homestead是laravel官方提供的vagrant box。所謂vagrant box其實(shí)就是一個(gè)由其他人已經(jīng)配置打包好的linux或其他OS環(huán)境。你只需要簡(jiǎn)單的幾行程式碼如:
vagrant add box homestead;
vagrant up;
就可以把laravel 官方推薦的os環(huán)境部署到虛擬機(jī)中,進(jìn)行使用。