2014年4月18日 星期五

我的Rails環境安裝(CentOS)

1. Linux環境準備
1.1. 在Windows上安裝VM & CentOS
VM使用VirtualBox or VMware皆可
CentOS挑釋出的最新版本download後, 在VM上安裝即可
基本上安裝都有操作界面可以按下一步, 所以沒有什麼難度, 其中有兩項我的選擇如下
  • Disc Found: 我選Skip the media test, 因為沒有什麼要測試的XD
  • 選擇要安裝的軟件: 我選Basic Server, 因為我沒打算要用桌面(有GUI), 也不想從Minimal什麼都沒有的情況下開始安裝開發工具:P
完整安裝步驟可參考:
http://wiki.debian.org.hk/w/Install_CentOS

1.2. 設定網路環境
查看目前的網路環境
# ifconfig
若只有看到local 127.0.0.1的資訊, 設定透過dhcp自動取得IP
# vim /etc/sysconfig/network-scripts/ifcfg-eth0
按i進入編輯模式, 輸入下列內容
ONBOOT="yes"
BOOTPROTO="dhcp"

按Esc鍵離開編輯模式後, 輸入:wq, 存檔並且離開文書編輯程式
(若要不存檔離開, 可輸入:q!)
啟動網路
# ifup eth0
方便內部環境測試, 直接關閉防火牆
# service iptables stop

1.3. 若安裝的CentOS不是最新版, 也可以安裝後直接更新
# yum clean all
# yum -y update
若發生Error: Package: matahari-XXX的錯誤, 因matahari在新版本已過時, 所以要刪掉
# yum remove matahari*
再執行一次update的指令來完成更新

1.4. 建立可以使用sudo執行屬於root權限指令的使用者, 使用者名稱以railsgirl為例
# useradd railsgirl
# passwd railsgirl
# visudo
找到root ALL=(ALL) ALL, 在該行下輸入下列內容
railsgirl ALL=(ALL) ALL

按Esc鍵離開編輯模式後, 輸入:wq, 存檔並且離開文書編輯程式

1.5. 切換使用者為railsgirl
# su railsgirl
上列的指令操作皆為root身份, 之後的操作皆以railsgirl的身份來進行
(因root為最高權限, 避免不小心去任意刪除到系統任何檔案, 對系統造成永久性損害, 我們以可以使用sudo的使用者來進行操作)


2. 開始安裝Rails
2.1. 安裝開發環境所需的工具
# sudo yum install make automake gcc gcc-c++ kernel-devel patch libffi-devel libtool bison openssl readline readline-devel curl git-core zlib zlib-devel openssl-devel libyaml-devel sqlite sqlite-devel libxml2 libxml2-devel libxslt-devel autoconf glibc-devel nodejs -y

2.2. 安裝圖像處理的工具
# sudo yum install ImageMagick -y

2.3. 安裝RVM(Ruby Version Manager)以及Ruby
指令參考來源:
https://rvm.io/rvm/install
http://ruby-china.org/wiki/rvm-guide
# curl -L get.rvm.io | bash -s stable --ruby
若發生下列錯誤
curl: (6) Couldn't resolve host 'rubygems.org'
There was an error while trying to resolve rubygems version for 'latest'. 
Halting the installation.
Gemset '' does not exist,       'rvm ruby-2.1.0 do rvm gemset create ' first, or append '--create'.
改手動安裝Ruby 2.0.0
# rvm install 2.0.0-p247

2.4. 使用一個Ruby版本並設為預設
# rvm use 2.0.0-p247 --default

2.5. 安裝Bundler(是管理應用程式Gem dependencies的管理工具, 會根據Gemfile的設定自動下載及安裝Gem套件, 並且能解決不同套件之間的依存關係)
Gem指令參考:
http://guides.rubygems.org/command-reference/
# gem install bundler --no-rdoc --no-ri

2.6. 安裝Rails
# gem install rails --no-rdoc --no-ri

2.7. 測試Rails
# rails new demo
# cd demo
# rails server
若發生下列錯誤
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
表示nodejs沒裝好, 再裝一次即可
# sudo yum install nodejs -y
若都沒有問題, 便可在Windows開啟browser去連剛啟動的rails網站囉!

最後, 來重開機(VM的Linux重啟), 再做一次測試, 若發現找不到指令的情形, 表示要再執行一次rvm use哪個ruby版本的指令
我們也可以直接在~/.bash_profile檔案裡最後一行加上該指令(rvm use 2.0.0-p247 --default), 就不用每次都要再執行一次啦~