Rails on NaCl


Ruby on Rails開発環境の構築 Debian GNU/Linux with RubyGems

Debian GNU/Linux 3.1(以下Sarge)上で Ruby on Rails (以下Rails)の開発環境を構築する方法について説明します。
Rails を RubyGems を利用してインストールします。

表記について

この文書中では、コマンドプロンプト % は一般ユーザでの実行、# はrootでの実行を表します。

Rails のインストール

Sarge では Rails の公式パッケージは用意されていません。そのため、Railsをインストールするにはdebパッケージを作成するか、RubyGems (Rubyのパッケージ管理システム)を利用する必要があります。
ここでは RubyGems を利用して環境を構築する方法について説明します。

RubyGems を使用する場合、RubyGems がデフォルトの設定でインストールされていると RubyGems のパッケージが Debian パッケージのファイルを上書きし、Debian パッケージとの不整合が発生する可能性があります。このドキュメントは、可能な限り現状の Debian パッケージ環境を破壊しない方法を提供します。

RubyGems のインストール

  1. RubyGems のインストールに必要な以下の Debian 公式パッケージをインストールします。
    # apt-get install ruby irb rdoc libopenssl-ruby1.8
    ...
    # ruby -v
    ruby 1.8.2 (2005-04-11) [i386-linux]
    
  2. RubyGems のソースアーカイブを適当な場所にダウンロードして展開します。
    # wget -c http://rubyforge.org/frs/download.php/5207/rubygems-0.8.11.tgz
    ...
    
    # tar zxvf rubygems-0.8.11.tgz
    ...
    
  3. RubyGems のインストールパスを /opt 以下に、また RubyGems のパッケージのファイルが Debian パッケージを上書きしないように、RubyGems パッケージのインストール先を /opt/rubygems/ に指定してビルドします。
    # cd rubygems-0.8.11
    # mkdir /opt/rubygems
    # export GEM_HOME=/opt/rubygems/
    # ruby setup.rb config --prefix=/opt/
    # ruby setup.rb setup
    # ruby setup.rb install
    
  4. /opt 以下に rubygems がインストールできましたが、この状態では RubyGems の Ruby ライブラリのパスが通っていないため、管理コマンド gem の実行ができません。
    # /opt/bin/gem help
    /opt/bin/gem:3:in `require': no such file to load -- rubygems (LoadError) from /opt/bin/gem:3
    
  5. 環境変数 RUBYLIB を以下のように設定すると gem が実行できるようになります。
    # export RUBYLIB=/opt/local/lib/site_ruby/1.8/
    # /opt/bin/gem help
    
    RubyGems is a sophisticated package manager for Ruby.  This is a
    basic help message containing pointers to more information.
    ...
    
  6. 以下のコマンドを実行し、”INSTALLATION DIRECTORY” が正しく設定されていることを確認します。
    # gem environment
    Rubygems Environment:
      - VERSION: 0.8.11 (0.8.11)
      - INSTALLATION DIRECTORY: /opt/rubygems/
      - GEM PATH:
         - /opt/rubygems/
      - REMOTE SOURCES:
         - http://gems.rubyforge.org
    
  7. 以降のインストールや RubyGems でインストールしたアプリケーションの実行にも環境変数 RUBYLIB、GEM_HOME の設定が必要なため、.bashrcに記述します。
    また RubyGems でインストールしたバイナリのパス追加も行っておきます。
    # vi .bashrc
    ...
    export RUBYLIB=/opt/local/lib/site_ruby/1.8/
    export GEM_HOME=/opt/rubygems/
    export PATH=/opt/bin:/opt/rubygems/bin:$PATH
    

RubyGems による Rails のインストール

  1. Rails を以下の gem コマンドでインストールします。
    # gem install rails --include-dependencies
    Attempting local installation of 'rails'
    Local gem file not found: rails*.gem
    Attempting remote installation of 'rails'
    Updating Gem source index for: http://gems.rubyforge.org
    Successfully installed rails-1.1.2
    Successfully installed rake-0.7.1
    Successfully installed activesupport-1.3.1
    Successfully installed activerecord-1.14.2
    Successfully installed actionpack-1.12.1
    Successfully installed actionmailer-1.2.1
    Successfully installed actionwebservice-1.1.2
    Installing RDoc documentation for rake-0.7.1...
    Installing RDoc documentation for activesupport-1.3.1...
    Installing RDoc documentation for activerecord-1.14.2...
    Installing RDoc documentation for actionpack-1.12.1...
    Installing RDoc documentation for actionmailer-1.2.1...
    Installing RDoc documentation for actionwebservice-1.1.2...
    
  2. このドキュメントでは Rails の動作確認でデータベースに MySQL を使用するので、MySQL アダプタをインストールします。
    # gem install mysql
    
  3. MySQL 本体をインストールしていない場合、MySQL 本体もDebian公式パッケージを利用してインストールします。
    # apt-get install mysql-server-4.1 mysql-client-4.1
    

Rails の動作確認

Rails がインストールできたら簡単な動作確認を行います。

ここでは一般ユーザで動作確認を行います。インストール時と同様、環境変数の設定を行って下さい。

  1. ホームディレクトリの src の下に test という Rails プロジェクトを作成します。
    % mkdir src
    % cd src
    % rails test
    
  2. 次に Test モデルを作成します。
    % cd test
    % ./script/generate model Test
    
  3. データベースの設定を修正します。データベースの設定は config/database.yml で行います。デフォルトで MySQL 用の設定になっているので、development データベースの username と password だけ変更して下さい。
    また MySQL のソケットファイルを指定する socket で始まる行を追加する必要があります。
    以下は MySQL が Debian パッケージのデフォルトの設定になっているときの database.yml です。
    % vi config/database.yml
    ..
    development:                          
      adapter: mysql
      database: test_development
      username: root                      # MySQL ユーザ名
      password:                           # MySQL パスワード
      host: localhost
      socket: /var/run/mysqld/mysqld.sock # この行を追加
    
  4. データベースのスキーマを db/migrate/001_create_tests.rb で定義します。
    コメントをはずしてstring 型の name というカラムを定義します。
    % vi db/migrate/001_create_tests.rb
    ...
    def self.up
      create_table :tests do |t|
        # t.column :name, :string ## ここのコメントをはずす
      end
    end
    ...
    
  5. mysql コマンドを利用してMySQL のデータベースを 作成します。
    % mysql -u root
    mysql > create database test_development;
    mysql > create database test_test;
    mysql > create database test_product;
    mysql > quit
    Bye
    
  6. rake migrate コマンドを利用してテーブルを作成します。
    % rake migrate
    
  7. generateスクリプトを利用して scaffold を作成します。
    その後httpサーバを起動します。
    % ./script/generate scaffold Test Test
    % ./script/server
    

ブラウザで http://localhost:3000/Test/ にアクセスすると作成したRailsの画面が表示されます。

この後、Eclipseを利用した統合開発環境を構築する場合は、統合開発環境を利用する を参照してください。

参考文献