最近升級了Win10之後感覺系統萌萌噠,不過也可惜了自己之前花費很大力氣搭建的開發環境。由於最近跨平臺的需求比較大,就考慮搭建一套跨平臺的開發環境。
Vagrant
Vagrant是一個相對輕量級的虛擬機器管理軟體,根據官方的說明:
(Vagrant) Create and configure lightweight, reproducible, and portable development environments.
所以選擇了Vagrant來管理開發環境。Vagrant的下載和安裝非常的容易,在它的官方網站https://www.vagrantup.com/downloads.html 中下載需要的版本即可。
Virtual Box
Vagrant本身並不包含虛擬機器管理軟體,因此我們需要配合Vagrant安裝一個虛擬機器軟體。Vagrant支援VMware, Virtual Box, Hyper-V 等多種虛擬機器軟體,我選擇的是Virtual Box。 免費,跨平臺。
Virtual Box的安裝也非常的容易,官方網站下載即可,在此就不再贅述了。
Tips:為什麼有了虛擬機器軟體還需要使用Vagrant?
因為簡單的虛擬機器並不能滿足我們的需要,我們希望一個新的環境,開機就幫我們解決了一切。使用Vagrant可以方便的幫助我們在搭建系統之後,自動的管理埠對映/軟體包安裝等等問題。
同時,更重要的,Vagrant還可以方便的設定同步資料夾,讓我們在宿主機內對程式的修改,可以方便的同步到客戶機,在除錯程式時,這是一個非常優秀的特質。
選擇客戶機系統
Vagrant 的客戶機可以支援多種系統,具體支援那些,可以前往 https://atlas.hashicorp.com/boxes/search 檢視,我選擇的是Ubuntu 14.04 x64的版本,也就是https://atlas.hashicorp.com/ubuntu/boxes/trusty64 這個版本。
如果你沒有其他的需求,僅僅是需要一個乾淨的ubuntu,選擇好之後在一個資料夾裡執行 vagrant init ubuntu/trusty64 即可初始化一個Ubuntu 14.04 x64的虛擬機器。
此時資料夾中會出現一個Vagrantfile的檔案,就是這個客戶機的配置檔案了。
修改配置檔案
修改配置檔案主要有兩個目的,一是配置埠對映,使我們可以從宿主機的埠去訪問客戶機,另一個目的是使得客戶機在系統載入完成時執行一個Shell指令碼來安裝所需要的程式檔案。
Vagrant會預設初始化一個埠對映為guest:22, host:2222 也就是說客戶機的22埠,將被對映到宿主機的2222埠。
修改埠對映
我們在Vagrantfile檔案內找到
1 |
# config.vm.network "forwarded_port", guest: 80, host: 8080 |
這一行,去掉#號,並按照我們的需要來修改埠號,我的設定如下:
1 |
config.vm.network "forwarded_port", guest: 5000, host: 15000 |
這樣就設定了客戶機的5000埠轉發到宿主機的15000埠,或者說宿主機的15000埠將轉發到客戶機的5000埠。
載入配置指令碼
Vagrant可以設定一個配置指令碼,以方便我們來設定配置:找到
1 2 3 4 |
# config.vm.provision "shell", inline: <<-SHELL # sudo apt-get update # sudo apt-get install -y apache2 # SHELL |
這幾行,將其修改為
1 |
config.vm.provision "shell", path: "python_env.sh" |
表明首次啟動後,將找到python_env.sh並執行。我們就可以通過設定這個指令碼來完成配置不同的環境,我的配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
echo "---------------------Upgrading System......---------" sudo rm -R /var/lib/apt/lists/* sudo apt-get update -y sudo apt-get upgrade -y sudo apt-get build-dep python echo "---------------------Upgrading System......---------" wget -c https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz tar -xzvf Python-2.7.9.tgz cd Python-2.7.9/ LDFLAGS="-L/usr/lib/x86_64-linux-gnu" ./configure make sudo make install echo "---------------------Checking Installation-----------" python --version echo "---------------------Setting pip---------------------" sudo apt-get install build-essential sudo apt-get install python-dev sudo apt-get install python-pip -y echo "---------------------Upgrading pip-------------------" sudo pip install --upgrade pip |
此時的目錄如下:
啟動
這一切做好之後,我們就可以啟動客戶機了。在目錄下執行 vagrant up
配置環境中,可以看到已經在執行Shell指令碼,更新系統了。這個時候只需要默默等待就好…
開始使用
Vagrant在啟動之後會為我們建立一個Private Key以供登陸,你可以直接在Windows的命令列下輸入 vagrant ssh來進行SSH的操作,也可以像我一樣,使用其他的客戶端。我使用MobaXterm作為Windows下的SSH Client。
輸入之後,即可進入到開發環境中。
同步資料夾
不妨在終端中輸入 cd /vagrant和ls,你看到了什麼?
沒錯,我們之前在Windows中建立的python_env.sh和Vagrantfile赫然出現在了客戶機中。這就是同步資料夾了。該資料夾和Windows中的對應資料夾同步。
這樣,我們就可以輕鬆的在虛擬機器中進行操作了。