minimize

事業拡大のため、新しい仲間を募集しています。
→詳しくはこちら

Ruby on Rails を使うためには、当然Rubyが必要。
我が家にはRuby 1.9 が入っている。

Rubyのバージョン

Rails は2009/3現在、Ruby 1.8 系での動作しか保証していない。
実際、Ruby 1.9 では動かない箇所がある。
例えば以下。ユニットテスト系パッケージが色々変わったらしい。

/home/naoki/.gem/ruby/1.9.1/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require': no such file to load -- test/unit/error (MissingSourceFile)

なので Rails 用の環境を別途用意することにした。
今回は全ての作業を一般ユーザで行う。

各種インストール

Ruby

http://www.ruby-lang.org/ja/

ruby-1.8.5-p12
% ./configure --prefix=/home/naoki/ruby-1.8.5
% make
% make install

ここにパスを通さないとRuby 1.9が有効になってしまうので、以下を実行。

export PATH=~/ruby-1.8.5/bin:$PATH

Rubygems

続いてRubyGems。これはRubyのパッケージ管理ライブラリ。
http://docs.rubygems.org/

rubygems-1.3.1
% ruby setup.rb

そしたら、Gemsを使って Rails をインストール。

% gem install rails

いきなり総合環境を入れてしまうと内部を理解できないので
まずはEmacsの rails-mode だけ入れることにした。
http://dima-exe.ru/rails-on-emacs

新規アプリケーション

まずはサンプルアプリケーションを作ってみる。
ここら辺は http://guides.rubyonrails.org/getting_started.html を参考に。

% rails /mnt/var/prog/rails/sample1
    create
    create  app/controllers
    create  app/helpers
    create  app/models
    create  app/views/layouts
    create  config/environments
    create  config/initializers
    create  config/locales
    create  db
    create  doc
    create  lib
    create  lib/tasks
    create  log
    create  public/images
    create  public/javascripts
    create  public/stylesheets
    create  script/performance
    create  script/process
    create  test/fixtures
    create  test/functional
    create  test/integration
    create  test/performance
    create  test/unit
    create  vendor
    create  vendor/plugins
    create  tmp/sessions
    create  tmp/sockets
    create  tmp/cache
    create  tmp/pids
    create  Rakefile
    create  README
    create  app/controllers/application.rb
    create  app/helpers/application_helper.rb
    create  test/test_helper.rb
    create  test/performance/browsing_test.rb
    create  config/database.yml
    create  config/routes.rb
    create  config/initializers/inflections.rb
    create  config/initializers/mime_types.rb
    create  config/initializers/new_rails_defaults.rb
    create  config/locales/en.yml
    create  config/boot.rb
    create  config/environment.rb
    create  config/environments/production.rb
    create  config/environments/development.rb
    create  config/environments/test.rb
    create  script/about
    create  script/console
    create  script/dbconsole
    create  script/destroy
    create  script/generate
    create  script/performance/benchmarker
    create  script/performance/profiler
    create  script/performance/request
    create  script/process/reaper
    create  script/process/spawner
    create  script/process/inspector
    create  script/runner
    create  script/server
    create  script/plugin
    create  public/dispatch.rb
    create  public/dispatch.cgi
    create  public/dispatch.fcgi
    create  public/404.html
    create  public/422.html
    create  public/500.html
    create  public/index.html
    create  public/favicon.ico
    create  public/robots.txt
    create  public/images/rails.png
    create  public/javascripts/prototype.js
    create  public/javascripts/effects.js
    create  public/javascripts/dragdrop.js
    create  public/javascripts/controls.js
    create  public/javascripts/application.js
    create  doc/README_FOR_APP
    create  log/server.log
    create  log/production.log
    create  log/development.log
    create  log/test.log

なんか色々作成された。
まずはサーバを起動しよう。

% cd /mnt/var/prog/rails/sample1
% ruby script/server
/home/naoki/ruby-1.8.5/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:259:in `require_frameworks': no such file to load -- openssl (RuntimeError)

openssl

今度はOpensslが無いというエラー。そんなもん必要なのかよ。
仕方無いのでまずはopensslをインストール。
その後、

ruby-1.8.5-p12/ext/openssl
% ruby extconf.rb --with-openssl-dir=/usr/local/ssl
% make
% make install

Webサーバ実行

さて、再トライ。

% cd /mnt/var/prog/rails/sample1
% ruby script/server
=> Booting WEBrick...
=> Rails 2.2.2 application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2009-03-14 19:49:59] INFO  WEBrick 1.3.1
[2009-03-14 19:49:59] INFO  ruby 1.8.5 (2006-12-25) [i686-linux]
[2009-03-14 19:49:59] INFO  WEBrick::HTTPServer#start: pid=12797 port=3000

ようやくうまくいった。Railsのデフォルトポートは 3000 らしい。
WEBrick というのがおそらくWebサーバか。
http://localhost:3000/

これでようやく起動。

welcome.png

試しに表示速度を計測してみる。

% /usr/local/apache2/bin/ab "http://localhost:3000/"
...
Total transferred:      540 bytes
HTML transferred:       68 bytes
Requests per second:    21.42 [#/sec] (mean)
Time per request:       46.691 [ms] (mean)

やはりそれほど速くはない。ちなみにうちのマシンはCeleron 2.8GHz。
スクリプト言語なのでこの程度か。
PHPやPythonと比べてみないと何とも言えないが、この先データベースへの
アクセスをするようなアプリを作ったときに再度計測することにしよう。

インストールまで

ここまで、意外と苦戦した。
Ruby 1.9 では動かない点。opensslが必要な点。

Unix や Ruby にある程度詳しくないと、ここでつまずく人もいるだろう。
ここら辺はいずれ改善されていくことを期待。