前言 && 目標
原先都在mac上安裝開發rails的環境,但本機玩一玩後,
想想最後成品還是得放到遠端去讓人打XD。
所以想要有一台linux(Ubuntu)的測試機,希望環境可以跟遠端的一樣,
這樣deploy時理論上不會有太多環境轉換的問題(應該啦)。
然後本來想雲端直接開一台來用,但想想也才剛開始學進度緩慢,
開一台CP給它很低,尋找別的方案時就看到方向啦!
[教學]使用Vagrant練習環境佈署
http://gogojimmy.net/2013/05/26/vagrant-tutorial/
雖然強者大大文章寫的很清楚,但有些地方偶還是不太懂啊 QQ
剛好Let's Try Rails Tuesday#1 開始辦,就來去請教(煩)強大的教練們了!
首先了解一下 Virtual Box,Vagrant,vagrantbox.es的關係
VirtualBox 就是VM啦,跟VMWave,Parallels算是同一類的軟體。
所以先安裝一下,這裡下載Vagrant 是用來控制VirtualBox的工具。這裡下載
(VirtualBox本身也有操控的介面可以用,Vagrant提供另一種用法)Vagrantbox.es 這裡是找各種imagefile的地方。
點進去看後,選擇太多但根本不知道要找怎樣的版本啊Orz,
只確定我要ubuntu 經過教練開示
3-1.如果不想一直更新os版本的話,可以用長期支援版本(LTS)
3-2.找跟自已機器同個規格cpu的版本,以我的來講就是 x86_64啦
3-3.找有Guest Additions的之後用比較方便。Guest Additions 說明
3-4.因為要練習裝機器用,所以找個乾淨的版本(no Puppet, Chef,Ruby…etc)
上面的Virtual Box,Vagrant安裝好後,就可以來開始啦
簡單的在Vagrantbox.es站上選了這個版本用 ub-12-amd64
先來看一下我們安裝好後的vagrant 版本
$ vagrant -v #Vagrant 1.3.3
然後來把剛找好的image box加入
$ vagrant box add ub-12-amd64 http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box
ub-12-amd64 是你幫這個box image取的名字,然後就會開始下載box了
等下載完後 可以打
$ vagrant box list #可以看到你機器上有那一些image box
UB-12-10 (virtualbox)
precise_64 (virtualbox)
然後找個要建Virtual Machine的地方
mkdir ~/tmp/ub_no3
cd ~/tmp/ub_no3
vagrant init ub-12-amd64
它就會自已在目錄底下幫你產生一個名叫 Vagrantfile 的檔案,
內容先不管它先來把機器開起來吧!
打上 vagrant up
等它一下等等機器就會開好囉!
開起來後,直接ssh進去吧, vagrant ssh
就成功的開好一台 ubuntu囉!!(開心)(系統預設的account/pwd 都是vagrant)
接下來~我們來安裝系統吧!
$ sudo apt-get -y update
$ sudo apt-get upgrade
$ sudo apt-get --no-install-recommends -y install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev libgdbm-dev ncurses-dev automake libtool bison subversion pkg-config libffi-dev vim imagemagick libmagickwand-dev
$ sudo apt-get install mysql-server libmysqlclient15-dev
$ \curl -L https://get.rvm.io | bash -s stable
$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"' >>~/.bashrc
$ source ~/.bashrc $ rvm -v
$ vim ~/.gemrc
$ gem: --no-ri --no-rdoc #加入這行
$ rvm pkg install readline openssl
$ rvm install 2.0.0
$ rvm use 2.0.0 --default
$ ruby -v
$ gem install rails
$ rails -v
結束!!! 有一台ub可以用了!
ps.vagrant可以指定box image裡哪個目錄要跟mac裡哪個目錄分享/同步檔案
所以可以把二邊跑的ruby/rails版本設一致後,開發的rails app
可以在mac裡run,也可以在ub上run,真的是很方便啊!!!