(その2)ubuntu9.10でRuby on Rails&MySQLをインストール

使用PC

IBM ThinkPad X40

参考書

IPA情報処理推進機構)配布の無料テキスト
Ruby on Rails開発(教材本体)
http://www.ipa.go.jp/software/open/ossc/seika_1005_1.html

現在24ページまで学習した。

今日やったこと
1.

database.ymlファイル先頭の置き換え
rails/config/database.yml
の、Mysql用の記述の置き換え(修正)
デフォルトではsqlite3のものになっているので、
mysql用に置き換えた。

実は、この作業の順序を間違えたために、いろいろインストールしなおすことになった。


2.モデル、ビュー、コントローラの生成

$ cd ~/rails
$ rails _2.3.2_ -d mysql kaede
$ cd kaede
$ rake db:create

フォルダを作ったあと、

$ ./script/generate model Book title:string
author:string published_on:date

このコマンドを実行して生成する。
それから

$ rake db:migrate

3.マイグレーションを実行。
データベースにテーブルを作成するために必要らしい。


4.このあとMysqlを実行して、

$ mysql -u root kaede_development
mysql> show tables;
+-----------------------------+
| Tables_in_kaede_development |
+-----------------------------+
| books                       |
| schema_migrations           |
+-----------------------------+
2 rows in set (0.00 sec)

そして、テーブル表示

mysql> show columns from books;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| id           | int(11)      | NO   | PRI | NULL    | auto_increment |
| title        | varchar(255) | YES |      | NULL    |                |
| author       | varchar(255) | YES |      | NULL    |                |
| published_on | date         | YES |      | NULL    |                |
| created_at   | datetime     | YES |      | NULL    |                |
| updated_at   | datetime     | YES |      | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

こうなれば、教科書どおりなのだけど、1回目は表示されなかった。
わたしのエラーは、以下の記述を含んでいたので、

TCPServer Error: Address already in use - bind(2)
/usr/lib/ruby/1.8/webrick/utils.rb:73:in `initialize': Address already in use - bind(2)

見当はずれなような気もするけど、対処法をググった結果、

RAILSforum
http://railsforum.com/viewtopic.php?id=16387

上記サイトに行き当たり、

$ lsof|grep 3000


このコマンドを実行して、以下のような意味合いの行が表示されたので、

ruby   ●●●●   adam   4u  IPv4
take the number in second position (6205 in this case) and in ||<


上記の四桁の数字部分をkillしたら、
>|ruby|
$ kill -9 ●●●●

上記フォーラムでは(note -9 is separate from the pid)と書いてあったけど、現段階ではよくわからない。
この処置のあと、mysqlコマンドを試してみたら、ちゃんと教科書どおりテーブルなどを表示してくれた。


きょうは、これで終わり。
あきらめずにやれば、プログラムは動いてくれるようだ。