Rails應用程式必須使用Ruby程式語言撰寫,要安裝Rails,自然也得先安裝Ruby。
在Windows中,可以使用 RailsInstaller 提供的套裝程式進行安裝,在撰寫這篇文件時,RailsInstaller 安裝完成後,就會有以下支援:
- Ruby 1.9.2-p290
- Rails 3.1.1
- Bundler 1.0.18
- Git 1.7.6
- Sqlite 3.7.3
- TinyTDS 0.4.5
- SQL Server support 3.3.3
- DevKit
在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 build-essential zlib1g-dev libssl-dev libreadline-gplv2-dev
接著下載Ruby原始碼進行編譯:
~\$ tar xvfz ruby-1.9.2-p290.tar.gz
~\$ cd ruby-1.9.2-p290/
~\$ ./configure
~\$ make
~\$ sudo make install
對於學習Rails,可使用SQLite作為資料庫系統,可如下安裝:
接下來要開始安裝Rails,首先安裝SQLite的Adapter(gem指令前的sudo是在Ubuntu要下的指令,你的系統中不一定需要):
gem是 RubyGem 指令,RubyGem 為 Ruby 程式庫的套件管理系統,使用gem install gem_name時,會自動下載相關套件與文件進行安裝,如果想不要安裝文件,可以加上--no-ri與--no-rdoc。
接下來安裝Rails套件:
安裝完成後,可以如下確認Git、Ruby、SQLite與Rails版本,在撰寫本文件的時候,所取得的版本資訊為:
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為例,首先建立新專案:
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,可能會看到以下錯誤訊息:
/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伺服器:
=> 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