よしだです。
今回は FreeBSD に任意バージョンの Ruby + Ruby on Rails を導入する方法を紹介します。

FreeBSD ではソフトウェアのインストールに Ports Collection というシステムを利用します。
このシステムを利用して Ruby + Ruby on Rails をインストールすると、デフォルトでは Ruby 1.8 と Rails 3.2 が入ります(FreeBSD 8.3 の場合)。ところが、Ruby や Ruby on Rails はバージョンによってかなり挙動が違ってきます。特定のバージョンをインストールしたいというシーンは少なからずあると思います。
そこで今回は、FreeBSD の Ports Collection を利用して、簡単に任意バージョンの Ruby + Ruby on Rails を導入する方法を紹介します。
FreeBSD インストール直後で Ports Collection の導入が済んでいない場合は、root ユーザで下記のコマンドでインストールします。
# portsnap fetch # portsnap extract
これで /usr/ports 以下に、各ソフトウェアのインストールに必要なファイルがまとめられたディレクトリ(このまとまりをスケルトンといいます)がカテゴリ分けされた状態で配備されます。
Ports Collection からは Ruby 1.8 か Ruby 1.9 を導入することができます。
Ruby に依存するソフトウェを導入する際に、デフォルトでは Ruby 1.8 がインストールされます。
ここで Ruby 1.9 をインストールしたい場合は、/etc/make.conf に Ruby 1.9 を利用することを明示することで実現できます。
# echo 'RUBY_DEFAULT_VER=1.9' >> /etc/make.conf
どちらのバージョンを導入するにしても、Ruby 自体のインストールを明示的に行う必要はなく、Ruby が必要になったときに Ports Collection が自動で導入してくれます。便利ですね。
まずは Ruby on Rails に必要不可欠であるプラグインシステム、RubyGems をインストールします。
RubyGems はさまざまなプラグインの管理を行う一方で、Ruby on Rails のインストールまで行えるという優れものです。FreeBSD には、この RubyGems を最小限構成で導入するための port スケルトンが用意されています。
今回はこれを利用することで導入にかかる時間の短縮を図ります。
# cd /usr/ports/www/rubygem-rails-app-installer # make config-recursive (インストール時の設定を、依存ソフトウェア分もあわせて先に済ませてしまう) # make install clean (ここで Ruby とその他の必要なソフトウェアがインストールされる)
ここでのポイントは、インストール前に「make config-recursive」というコマンドを実行することです。
このコマンドはソフトウェアに必要な設定を、依存するソフトウェアの分も含めて、あらかじめ行うことができます。こうすることで、ソフトウェアごとに設定ダイアログが出現し、インストール作業が中断されるのを防ぐことができます。
(この手順は、必要がなければ飛ばしてもかまいません)
RubyGems にもバージョンがあり、環境によっては特定バージョンの導入が必要なケースもあります。
FreeBSD 上には、バージョンごとの RubyGems の port スケルトンは存在しません。
そこで下記のように、RubyGems 自身の機能を利用してアップグレードもしくはダウングレードさせます。
# rehash (先ほど gem コマンドが入ったばかりなので、csh の場合、PATH の再読み込みが必要) # gem install rubygems-update -v=<インストールしたいバージョンの番号> # rehash (先ほどのコマンドで update_rubygems コマンドが入ったばかりなので、同上) # update_rubygems
ここまでの手順で Ruby on Rails を導入するための準備は整いました。
Ruby on Rails は RubyGems を利用することで、簡単に導入することができます。
# gem install -v=<インストールしたいバージョンの番号> rails
とっても簡単ですね。
今回は FreeBSD 8.3 での利用を例に、任意バージョンの Ruby + Ruby on Rails を導入する方法を紹介しました。
次回はこの手順を利用して、Ruby on Rails 2.3 という少し古いシステムが必要になる『エレコマ』を、FreeBSD に導入する方法を紹介したいと思います。