FedoraCore 5にてRailsと統合開発環境であるRadRailsのセットアップを行います。
また、後半ではRadRailsからバージョン管理システムSubversionを使用する方法について説明します。
この文書中では、コマンドプロンプト「$」は一般ユーザでの実行、「#」は root での実行を表します。
FedoraCoreではRailsの公式パッケージは用意されていません。そのため、Railsをインストールするにはrpmパッケージを作成するか、RubyGems (Rubyのパッケージ管理システム)を利用する必要があります。
ここでは rpm パッケージで Rails のインストールを行います。
以下の内容を /etc/yum.repos.d/nacl-rails.repo に記述します。
[rails] name=Fedora Rails $releasever - $basearch - NaCl baseurl=http://rails.netlab.jp/fc5/yum/repos/fc$releasever/$basearch/ enabled=1 gpgcheck=0
以下のコマンドを実行し、Rails をインストールします。
# yum install rails Loading "installonlyn" plugin Setting up Install Process Setting up repositories core [1/4] rails [2/4] updates [3/4] extras [4/4] Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for rails to pack into transaction set. rails-1.1.0-fc5.nacl1.noa 100% |=========================| 108 kB 00:00 ---> Package rails.noarch 0:1.1.0-fc5.nacl1 set to be updated --> Running transaction check --> Processing Dependency: ruby-actionmailer = 1.2.0 for package: rails --> Processing Dependency: ruby-actionpack = 1.12.0 for package: rails --> Processing Dependency: ruby-actionwebservice = 1.1.0 for package: rails --> Processing Dependency: ruby-activesupport = 1.3.0 for package: rails --> Processing Dependency: ruby-activerecord = 1.14.0 for package: rails --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for ruby-actionmailer to pack into transaction set. ruby-actionmailer-1.2.0-f 100% |=========================| 14 kB 00:00 ---> Package ruby-actionmailer.noarch 0:1.2.0-fc5.nacl1 set to be updated ---> Downloading header for ruby-actionpack to pack into transaction set. ruby-actionpack-1.12.0-fc 100% |=========================| 43 kB 00:00 ---> Package ruby-actionpack.noarch 0:1.12.0-fc5.nacl1 set to be updated ---> Downloading header for ruby-activesupport to pack into transaction set. ruby-activesupport-1.3.0- 100% |=========================| 24 kB 00:00 ---> Package ruby-activesupport.noarch 0:1.3.0-fc5.nacl1 set to be updated ---> Downloading header for ruby-actionwebservice to pack into transaction set. ruby-actionwebservice-1.1 100% |=========================| 20 kB 00:00 ---> Package ruby-actionwebservice.noarch 0:1.1.0-fc5.nacl1 set to be updated ---> Downloading header for ruby-activerecord to pack into transaction set. ruby-activerecord-1.14.0- 100% |=========================| 42 kB 00:00 ---> Package ruby-activerecord.noarch 0:1.14.0-fc5.nacl1 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: rails noarch 1.1.0-fc5.nacl1 rails 747 k Installing for dependencies: ruby-actionmailer noarch 1.2.0-fc5.nacl1 rails 91 k ruby-actionpack noarch 1.12.0-fc5.nacl1 rails 605 k ruby-actionwebservice noarch 1.1.0-fc5.nacl1 rails 95 k ruby-activerecord noarch 1.14.0-fc5.nacl1 rails 467 k ruby-activesupport noarch 1.3.0-fc5.nacl1 rails 86 k Transaction Summary ============================================================================= Install 6 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 2.0 M Is this ok [y/N]: y Downloading Packages: (1/6): rails-1.1.0-fc5.na 100% |=========================| 747 kB 00:00 (2/6): ruby-actionmailer- 100% |=========================| 91 kB 00:00 (3/6): ruby-actionpack-1. 100% |=========================| 605 kB 00:00 (4/6): ruby-activesupport 100% |=========================| 86 kB 00:00 (5/6): ruby-actionwebserv 100% |=========================| 95 kB 00:00 (6/6): ruby-activerecord- 100% |=========================| 467 kB 00:00 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: ruby-activesupport ######################### [1/6] Installing: ruby-actionpack ######################### [2/6] Installing: ruby-activerecord ######################### [3/6] Installing: ruby-actionwebservice ######################### [4/6] Installing: ruby-actionmailer ######################### [5/6] Installing: rails ######################### [6/6] Installed: rails.noarch 0:1.1.0-fc5.nacl1 Dependency Installed: ruby-actionmailer.noarch 0:1.2.0-fc5.nacl1 ruby-actionpack.noarch 0:1.12.0-fc5.nacl1 ruby-actionwebservice.noarch 0:1.1.0-fc5.nacl1 ruby-activerecord.noarch 0:1.14.0-fc5.nacl1 ruby-activesupport.noarch 0:1.3.0-fc5.nacl1 Complete!
この文書ではMySQLを利用します。以下のコマンドでruby-mysqlパッケージをインストールしてください。MySQLのパッケージがインストールされていない場合はruby-mysqlの依存関係チェックにより自動でインストールされます。
# yum install ruby-mysql Loading "installonlyn" plugin Setting up Install Process Setting up repositories core [1/4] rails [2/4] updates [3/4] extras [4/4] Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for ruby-mysql to pack into transaction set. ruby-mysql-2.7-8.fc5.i386 100% |=========================| 3.6 kB 00:00 ---> Package ruby-mysql.i386 0:2.7-8.fc5 set to be updated --> Running transaction check --> Processing Dependency: libmysqlclient.so.15 for package: ruby-mysql --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for mysql to pack into transaction set. mysql-5.0.18-2.1.i386.rpm 100% |=========================| 37 kB 00:01 ---> Package mysql.i386 0:5.0.18-2.1 set to be updated --> Running transaction check --> Processing Dependency: perl(DBI) for package: mysql --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for perl-DBI to pack into transaction set. perl-DBI-1.50-2.2.i386.rp 100% |=========================| 17 kB 00:00 ---> Package perl-DBI.i386 0:1.50-2.2 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: ruby-mysql i386 2.7-8.fc5 extras 44 k Installing for dependencies: mysql i386 5.0.18-2.1 core 2.9 M perl-DBI i386 1.50-2.2 core 581 k Transaction Summary ============================================================================= Install 3 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 3.5 M Is this ok [y/N]: y Downloading Packages: (1/3): perl-DBI-1.50-2.2. 100% |=========================| 581 kB 00:05 (2/3): ruby-mysql-2.7-8.f 100% |=========================| 44 kB 00:00 (3/3): mysql-5.0.18-2.1.i 100% |=========================| 2.9 MB 00:22 warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 1ac70ce6 Public key for ruby-mysql-2.7-8.fc5.i386.rpm is not installed Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-extras Key imported successfully Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: perl-DBI ######################### [1/3] Installing: mysql ######################### [2/3] Installing: ruby-mysql ######################### [3/3] Installed: ruby-mysql.i386 0:2.7-8.fc5 Dependency Installed: mysql.i386 0:5.0.18-2.1 perl-DBI.i386 0:1.50-2.2 Complete!
ローカルホストでMySQLサーバを起動するために以下のパッケージも追加でインストールします。
# yum install mysql-server Loading "installonlyn" plugin Setting up Install Process Setting up repositories core [1/4] rails [2/4] updates [3/4] extras [4/4] Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for mysql-server to pack into transaction set. mysql-server-5.0.18-2.1.i 100% |=========================| 33 kB 00:01 ---> Package mysql-server.i386 0:5.0.18-2.1 set to be updated --> Running transaction check --> Processing Dependency: perl-DBD-MySQL for package: mysql-server --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for perl-DBD-MySQL to pack into transaction set. perl-DBD-MySQL-3.0002-2.2 100% |=========================| 8.6 kB 00:00 ---> Package perl-DBD-MySQL.i386 0:3.0002-2.2.2 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: mysql-server i386 5.0.18-2.1 core 6.6 M Installing for dependencies: perl-DBD-MySQL i386 3.0002-2.2.2 core 150 k Transaction Summary ============================================================================= Install 2 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 6.7 M Is this ok [y/N]: y Downloading Packages: (1/2): perl-DBD-MySQL-3.0 100% |=========================| 150 kB 00:01 (2/2): mysql-server-5.0.1 100% |=========================| 6.6 MB 01:02 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: perl-DBD-MySQL ######################### [1/2] Installing: mysql-server ######################### [2/2] Installed: mysql-server.i386 0:5.0.18-2.1 Dependency Installed: perl-DBD-MySQL.i386 0:3.0002-2.2.2 Complete!
ここまででRailsを利用する環境が整いましたので、簡単な動作確認を行います。ここでは一般ユーザにて動作確認を行います。
まずホームディレクトリのsrcの下にtestというRailsプロジェクトを作成します。
$ mkdir src $ cd src/ $ rails test
次にTestモデルを作成します。
$ cd test/ $ ./script/generate model Test
データベースの指定を行います。ここではデータベースとして、デフォルトのMySQLを利用します。
データベースの設定は config/database.yml で行います。標準ではMySQLを利用するように設定されています。特にデータベースの指定は必要ありませんが、ソケットファイルの指定が必要になります。
config/database.yml に以下のようにソケットの指定を追加します。
development: adapter: mysql database: test_development username: root password: host: localhost socket: /var/lib/mysql/mysql.sock # <- 追加
development: だけではなく、test:、 product: にも同様にソケット指定の行を追加する必要があります。
データベースのスキーマを db/migrate/001_create_tests.rb にて定義します。このファイルでは標準で作成されたファイルのコメントを外します。
def self.up
create_table :tests do |t|
t.column :name, :string # <- コメントを外す
end
end
MySQLのデータベースをmysqlコマンドで作成します。MySQLが起動していない場合は、以下のコマンドで起動します。
# /etc/init.d/mysqld start
データベースの作成を行います。
$ mysql -u root Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 to server version: 5.0.18 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> create database test_development; Query OK, 1 row affected (0.00 sec) mysql> create database test_test; Query OK, 1 row affected (0.00 sec) mysql> create database test_product; Query OK, 1 row affected (0.01 sec) mysql> quit Bye
rake migrate コマンドでテーブルを作成します。
$ rake migrate (in /home/ryosuke/src/test) CreateTests: migrating ===================================================
—create_table(:tests) → 0.0192s
CreateTests: migrated (0.0200s) ==========================================
generate コマンドで scaffold を作成します。
$ ./script/generate scaffold Test Test
Webrick HTTPサーバを起動します。
$ ./script/server
http://localhost:3000/ をブラウザで表示するとRailsの「Welcome」画面が表示されます。
http://localhost:3000/Test をブラウザで表示すると作成したTestプロジェクトが表示されます。
RadRailsはRailsの統合開発環境で、Eclipseへのプラグインとして開発されています。プラグインですが、RadRailsを含めたEclipseのインストールパッケージも用意されています。
FedoraCore5 には GNU libgcj がインストールされており、j2sdk 1.4.2 相当の環境として利用可能なので、別途j2sdkをインストールする必要はありません。また、Eclipseも標準パッケージとして用意されており,利用しているシステムにインストールされていない場合は以下のコマンドでインストールしてください。
# yum install eclipse-platform
メニューの「アプリケーション」から「プログラミング」、「Eclipse」で起動できます。
このサイトの統合開発環境を利用する RadRails 「プラグインのインストール」を参照してください。