【続】Ubuntu10.04(Server版)にrails3をインストール - scaffoldが成功するまで


昨日の作業(Ubuntu 10.04 (Server版) に ruby1.9.2とrails3.0をインストール - f_world21の日記)の続き。


とりあえずrailsが動いたってだけじゃなく、ちゃんとDBにModelを生成するまでやってみたので、そのメモ。

$ rails generate scaffold product title:string description:text image_url:string

scaffoldはこんな感じ。

$ rake db:migrate
$ rails server

とやってみたら

no such file to load -- openssl

というエラーがでちゃいました。あー、そういえば確かopenssl必要だったなぁと思い

$ sudo aptitude install libopenssl-ruby

とやってみたんですが、相変わらず『no such file to load -- openssl』のエラーは消えず。
調べてみたら、zlibの時にやったようにopenssl関連をもう一回makeしなおさなきゃいけないみたい。あれ、昔ruby1.8系とrails2.3系をインストールしたときこんなこと下覚えはなかったのだが。。。まぁいいや、やってみましょう。

$ cd .rvm/src/ruby-1.9.2-p0/ext/openssl/
$ ruby extconf.rb
$ make

あれ、makeがうまくいきません。makeするものがありません的に言われちゃいました。
これまた調べてみると、openssl、libssl-dev(debian系の場合)というパッケージも必要で、それをいれたあとにmake擦る必要があるみたい。あれ、以前はこんなことやってなかったのになぁ。ただ、以前はデスクトップ版のubuntuにインストールしたし、apacheとかも入れた後にrubyrailsインストールしたから、おそらく事前に入っていたのでしょう。
まぁ、なにはともあれ試してみましょう。

$ sudo aptitude install openssl
$ sudo aptitude install libssl-dev

これやってもう一回make試してみましょう。

$ ruby extconf.rb
$ make
$ make install

うまくmakeできました。これでやっとサーバを起動できます。

$ rails s

rails server』コマンドは上記のように省略可能みたいです。他にもアルファベット一文字で省略できるのおおそうですね。

libxml-rubyのインストール


引き続き、libxml-rubyのインストール。

rubyにはREXMLというXMLライブラリが標準で付いてきますが、これが遅いというのは有名な話で、代替手段としてlibxml-rubyがよく使われます。
というわけで、これもインストール。ちょっとめんどいんだけど、結論からいうと以下のとおりのコマンドで入りました。

$ sudo aptitude install libxml2
$ sudo aptitude install libxml2-dev
$ gem install -r libxml-ruby

gem installの"-r"というオプションはリモートリポジトリ(rubyforgeのことらしい)からのみインストールというオプションらしい。どうやらgemでインストールするときは"-r"を付けたほうがよさそう。ローカルリポジトリに古いのがあると、それをインストールしちゃうとか。。。gemもあんま詳しくないので、もうちょっと勉強しなきゃなぁ。


Ruby1.9系にうつって、rubyの処理系自体が速くなってるはずだら、REXMLも速くなってるんじゃないかという推測も立ちますね。
できればベンチマークもとってみたいと思いますが、それはまた次回。