安裝 Rails


Rails應用程式必須使用Ruby程式語言撰寫,要安裝Rails,自然也得先安裝Ruby。

在Windows中,可以使用 RailsInstaller 提供的套裝程式進行安裝,在撰寫這篇文件時,RailsInstaller 安裝完成後,就會有以下支援:

在Linux中,可以試著使用指令sudo apt-get install ruby1.9.1來安裝 Ruby 1.9.2,沒錯,根據 官方文件 的說法:

Yes, this will install Ruby 1.9.2. It has a ‘library compatibility version’ of 1.9.1, hence the name.

如果想放心一些,也可以自己下載原始碼來進行編譯,由於Ruby本身或相關套件,都使用 Git 版本控制系統,所以首先安裝Git與相關編譯套件,接下來的內容皆以Ubuntu 11.10為例:

~\$ sudo apt-get install git-core
~\$ sudo apt-get install build-essential zlib1g-dev libssl-dev libreadline-gplv2-dev

接著下載Ruby原始碼進行編譯:
~\$ wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
~\$ tar xvfz ruby-1.9.2-p290.tar.gz
~\$ cd ruby-1.9.2-p290/
~\$ ./configure
~\$ make
~\$ sudo make install

對於學習Rails,可使用SQLite作為資料庫系統,可如下安裝:
~\$ sudo apt-get install sqlite3 libsqlite3-dev

接下來要開始安裝Rails,首先安裝SQLite的Adapter(gem指令前的sudo是在Ubuntu要下的指令,你的系統中不一定需要):

~\$ sudo gem install sqlite3 --no-ri --no-rdoc

gemRubyGem 指令,RubyGem 為 Ruby 程式庫的套件管理系統,使用gem install gem_name時,會自動下載相關套件與文件進行安裝,如果想不要安裝文件,可以加上--no-ri與--no-rdoc。

接下來安裝Rails套件:

~\$ sudo gem install rails --no-ri --no-rdoc

安裝完成後,可以如下確認Git、Ruby、SQLite與Rails版本,在撰寫本文件的時候,所取得的版本資訊為:

~\$ git --version
git version 1.7.5.4
~\$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
~\$ sqlite3 --version
3.7.7 2011-06-23 19:49:22 4374b7e83ea0a3fbc3691f9c0c936272862f32f2
~\$ rails -v
Rails 3.1.3

無論是在Windows或Linux下完成Rails的相關安裝,接下來要開始建立第一個Rails應用程式了,這沒什麼,只是先建個基本專案目錄,啟動Rails伺服器,然後看看能否透過瀏覽器看到首頁而已。

以下的範例仍是繼續以Ubunto 11.10為例,首先建立新專案:

~\$ rails new hello
      create 
      create  README
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/assets/images/rails.png
      create  app/assets/javascripts/application.js
      ...略
      create  vendor/plugins/.gitkeep
         run  bundle install
Fetching source index for http://rubygems.org/
Using rake (0.9.2.2)
Using multi_json (1.0.4)
Using activesupport (3.1.3)
...略
Installing turn (0.8.2)
Installing uglifier (1.1.0)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

這會建立hello目錄,當中包括了許多基本目錄與檔案,之後還會說明。注意以上訊息中,有行執行了bundle install指令,這會根據專案目錄中的Gemfile檔案設定,下載安裝Ra的ils應用程式所需的相關程式庫套件。

接著進入hello目錄(cd hello),執行rails server(或rails s,其中s就是server簡寫)啟動Rails伺服器,如果是Windows,開啟瀏覽器連結http://localhost:3000,就可以看到預設首頁。如果是Ubuntu,可能會看到以下錯誤訊息:

~/hello\$ rails s
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.2.12/lib/execjs/runtimes.rb:47:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
...略

這是因為Linux中沒有預設的JavaScript執行環境,可以開啟專案目錄中的Gemfile檔案,在當中加上一行:

  • Gemfile
gem 'therubyracer'

再度執行bundle install,就會自動下載therubyracer套件,然後再度執行rails s嘗試啟動Rails伺服器:

~/hello\$ rails s
=> Booting WEBrick
=> Rails 3.1.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-12-13 21:13:14] INFO  WEBrick 1.3.1
[2011-12-13 21:13:14] INFO  ruby 1.9.2 (2011-07-09) [i686-linux]
[2011-12-13 21:13:14] INFO  WEBrick::HTTPServer#start: pid=2757 port=3000

開啟瀏覽器連結http://localhost:3000,就可以看到預設首頁,這個首頁來自專案目錄中public目錄中的index.html:

預設首頁