【続】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とかも入れた後にrubyとrailsインストールしたから、おそらく事前に入っていたのでしょう。
まぁ、なにはともあれ試してみましょう。
$ 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も速くなってるんじゃないかという推測も立ちますね。
できればベンチマークもとってみたいと思いますが、それはまた次回。