本書在[第二章](https://ihower.tw/rails4/installation.html)介紹了如何快速安裝,本附錄將介紹進階的安裝方式,例如RVM和MySQL。適合專業的開發者。
## Mac OS X
### 安裝MySQL
Mac OS除了可以至MySQL官網下載,筆者推薦透過Homebrew安裝:
~~~
$ brew install mysql
$ mysql.server start
~~~
如果需要開機就把MySQL開起來的話:
~~~
$ mkdir -p ~/Library/LaunchAgents
$ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
~~~
安裝MySQL Adapter:
~~~
$ gem install mysql2
~~~
修改Gemfile加上以下套件,然後輸入`bundle`:
~~~
gem 'mysql2'
~~~
修改config/database.yml設定檔,整個換成:
~~~
development:
adapter: mysql2
encoding: utf8
database: demo_development
host: localhost
username: root
password:
test:
adapter: mysql2
encoding: utf8
database: demo_test
host: localhost
username: root
password:
production:
adapter: mysql2
encoding: utf8
database: demo_production
host: localhost
username: root
password:
~~~
### 使用RVM安裝Ruby
[RVM](http://rvm.beginrescueend.com/)(Ruby Version Manager)是一套可以同時安裝不同版本Ruby:
安裝RVM (請參考官方網頁的[安裝說明](https://rvm.io/)):
~~~
$ curl -sSL https://get.rvm.io | bash -s stable
~~~
接著看你想要安裝哪一個Ruby版本,例如Ruby 2.2.2:
~~~
$ rvm install 2.2.2
$ rvm 2.2.2 --default
~~~
你也可以試著安裝其他版本,輸入`rvm list known`會列出有哪些版本可以安裝,例如:
~~~
$ rvm install jruby
~~~
這樣就會安裝[JRuby](http://jruby.org/)版本,輸入`rvm jruby`切換到JRuby版的Ruby,輸入`rvm list`會列出目前已經安裝的版本。輸入`ruby -v`可以得知目前的Ruby版本:
~~~
$ rvm 2.2.2
$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
$ rvm jruby
$ ruby -v
jruby 1.7.15 (1.9.3p392) 2014-09-03 82b5cc3 on Java HotSpot(TM) 64-Bit Server VM 1.7.0_67-b01 +jit [darwin-x86_64]
~~~
輸入`rvm 2.2.2 --default`可以設定2.2.2為預設的Ruby版本。
## Ubuntu Desktop
### 安裝MySQL
Ubuntu上安裝MySQL請執行:
~~~
$ sudo apt-get install mysql-server mysql-common mysql-client libmysqlclient-dev
~~~
安裝MySQL Adapter:
~~~
$ gem install mysql2
~~~
修改Gemfile加上:
~~~
gem 'mysql2'
~~~
修改config/database.yml設定檔。
### 使用RVM安裝Ruby
在使用RVM之前必須先安裝以下套件:
~~~
$ sudo apt-get install build-essential libssl-dev libpcre3-dev libncurses5-dev libreadline6-dev
~~~
[RVM](http://rvm.beginrescueend.com/)(Ruby Version Manager)請參考上一節的內容。記得也是要先裝有Git,請參考附錄Git如何安裝。
如果碰到Linux套件問題,請參考[RVM Packages](http://beginrescueend.com/packages/)有一些常見解法。