Dec 18th, 2009

passenger install @ruby1.9.1 on ubuntu 9.10

ruby1.9.1でpassengerを使いたい衝動に駆られ、ruby1.9.1でpassengerインストールを行ったので、その記録。

まずは必要なものをインストール

$ sudo apt-get install ruby1.9.1 rdoc1.9.1 ri1.9.1 rubygems1.9.1 irb1.9.1  
$ sudo apt-get install ruby1.9.1-dev build-essential  
$ sudo apt-get install libopenssl-ruby1.9.1  
$ sudo apt-get install libapr1-dev libaprutil1-dev apache2-prefork-dev  
$ sudo gem1.9.1 install activerecord activesupport deprecated fastthread  
$ sudo gem1.9.1 install rack rake passenger  

この後、ruby1.8で行ったように

$ sudo ruby1.9.1 /var/lib/gems/1.9.1/bin/passenger-install-apache2-module

を実行するとエラーでこける。

ソースを見るとruby1.8のgemを参照してるようで、そのgemをls -lしてみると

$ ls -l /usr/bin/gem  
lrwxrwxrwx 1 root root 21 2009-12-17 14:18 /usr/bin/gem -> /etc/alternatives/gem

となっていた。

alternativesで管理されてるようなので、update-alternativesを実行

$ sudo update-alternatives --config gem  
There are 2 choices for the alternative gem (providing /usr/bin/gem).  
 Selection    Path               Priority   Status------------------------------------------------------------  
* 0            /usr/bin/gem1.8     180       auto mode  
  1            /usr/bin/gem1.8     180       manual mode  
  2            /usr/bin/gem1.9.1   170       manual mode  
Press enter to keep the current choice[*], or type selection number: 

2を選択。
これで、gemとするとgem1.9.1が実行されるようになる。
ついでに、rubyはどうなってるか?を見てみると・・・

$ ls -l /usr/bin/ruby  
lrwxrwxrwx 1 root root 7 2009-11-27 19:20 /usr/bin/ruby -> ruby1.8

ruby1.8に直でしたorz

とりあえず、気を取り直して

$ sudo ruby1.9.1 /var/lib/gems/1.9.1/bin/passenger-install-apache2-module

/etc/apache2/mods-available/passenger.load

LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-2.2.8/ext/apache2/mod_passenger.so

/etc/apache2/mods-available/passenger.conf

PassengerRoot /var/lib/gems/1.9.1/gems/passenger-2.2.8  
PassengerRuby /usr/bin/ruby1.9.1  

の二つをファイルをそれぞれ作成して

sudo a2enmod passenger  
sudo service apache2 restart