目次
この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
よしだです。
今回は 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 を導入する方法を紹介します。
■ 導入手順
0. Ports Collection をインストールする
FreeBSD インストール直後で Ports Collection の導入が済んでいない場合は、root ユーザで下記のコマンドでインストールします。
# portsnap fetch
# portsnap extract
これで /usr/ports 以下に、各ソフトウェアのインストールに必要なファイルがまとめられたディレクトリ(このまとまりをスケルトンといいます)がカテゴリ分けされた状態で配備されます。
1. 任意バージョンの Ruby をインストールするための準備
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 が自動で導入してくれます。便利ですね。
2. RubyGems をインストールする
まずは 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」というコマンドを実行することです。
このコマンドはソフトウェアに必要な設定を、依存するソフトウェアの分も含めて、あらかじめ行うことができます。こうすることで、ソフトウェアごとに設定ダイアログが出現し、インストール作業が中断されるのを防ぐことができます。
3. 任意バージョンの RubyGems をインストールする
(この手順は、必要がなければ飛ばしてもかまいません)
RubyGems にもバージョンがあり、環境によっては特定バージョンの導入が必要なケースもあります。
FreeBSD 上には、バージョンごとの RubyGems の port スケルトンは存在しません。
そこで下記のように、RubyGems 自身の機能を利用してアップグレードもしくはダウングレードさせます。
# rehash
(先ほど gem コマンドが入ったばかりなので、csh の場合、PATH の再読み込みが必要)
# gem install rubygems-update -v=<インストールしたいバージョンの番号>
# rehash
(先ほどのコマンドで update_rubygems コマンドが入ったばかりなので、同上)
# update_rubygems
4. 任意バージョンの Ruby on Rails をインストールする
ここまでの手順で Ruby on Rails を導入するための準備は整いました。
Ruby on Rails は RubyGems を利用することで、簡単に導入することができます。
# gem install -v=<インストールしたいバージョンの番号> rails
とっても簡単ですね。
■ おわりに
今回は FreeBSD 8.3 での利用を例に、任意バージョンの Ruby + Ruby on Rails を導入する方法を紹介しました。
次回はこの手順を利用して、Ruby on Rails 2.3 という少し古いシステムが必要になる『エレコマ』を、FreeBSD に導入する方法を紹介したいと思います。