Ubuntuで環境整備をやったらRailsが動かなくなった

ここ(→Ubuntuの環境整備 - satake7’s memo)の手順で Ubuntu の環境がきれいになったと喜んでいたのもつかの間、いつの間にか Railsアプリが動かなくなってました。

現象

Apache2 の error.log を見るとこんなのが出ています。

[error] [client 192.168.1.3] *** Unexpected error in Passenger: Cannot spawn application
'/home/www/2.5-55.jp': Could not read from the spawn server: Connection reset by peer (104)

Passenger が Railsアプリを起こそうとして失敗している模様。なにが原因かわからないので、とりあえず単体のWEBrickを立ち上げて現象を切り分けることにします。

/home/www/2.5-55.jp$ script/server
Missing the Rails 2.0.2 gem. Please `gem install -v=2.0.2 rails`, 
update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version 
you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

あれれ、Railsがインストールされてない、と言ってます。そんな馬鹿な。

/home/www/2.5-55.jp$ s gem list
 *** LOCAL GEMS ***
 mysql (2.7)

がーーん。orz...。MySQLしか入ってない。ここでピンときました。あれだ、gem をソースから入れて古いやつを手で消したときに、gem のリストかなんかを取っておいて、それを新しいのにインポートしないといけなかったんだな、きっと。
でもそういえば、ここ(→Ubuntu(MySQL) 初心者Tips - satake7’s memo)に、なんかのときに役に立つかもと思って、gem list を上げてあったんだ、ラッキー。自分の用心深さに感謝です。

対処

自分の日記に上がってる gem list を見てインストールし直します。

$ s gem install -v=2.0.2 rails
Successfully installed rake-0.8.1
Successfully installed activesupport-2.0.2
Successfully installed activerecord-2.0.2
Successfully installed actionpack-2.0.2
Successfully installed actionmailer-2.0.2
Successfully installed activeresource-2.0.2
Successfully installed rails-2.0.2
7 gems installed
$ s gem install passenger
Successfully installed fastthread-1.0.1
Successfully installed passenger-1.0.5
$ s gem install ruby-debug
Successfully installed columnize-0.1
Successfully installed linecache-0.42
Successfully installed ruby-debug-base-0.10.1
Successfully installed ruby-debug-0.10.1
4 gems installed
$ s gem install hpricot
Successfully installed hpricot-0.6
1 gem installed

どれもこれもすでにインストール済みのものなので、エントリーを作るだけだからか、すぐ終わります。「sources (0.0.1)」と「sqlite3-ruby (1.2.2)」はたぶんなにか試行錯誤してたときに入ってしまったやつなので、とりあえず無視。
これで無事、Railsアプリも動き出しました。