UbuntuにRuby on Railsを再インストール(rbenv編)

Rubyを最新版にしようとしたが、rbenv(複数のバージョンのRubyを管理するツール)でエラーが発生。rbenv installコマンドが実行できない。いろいろ調べてみたが、原因が分からないので、apt-getコマンドでrbenvとrubyをいったん削除。GitHubから最新版のrbenvをインストールしてみた。

$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv

インストールが完了したら、ホームディレクトリの.profileファイルにパスや初期化コマンドなどを書き込んでおく。

$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
$ echo 'eval "$(rbenv init -)"' >> ~/.profile

zshを使っている場合は、上記のコマンド中の~/.profileを~/.zshrcに置き換えて実行する。シェルを再起動させると、設定が反映される。

$ exec $SHELL -l

続いて、ruby-buildのインストール。このツールは、rbenv installコマンドの実行時に自動的に呼び出されることになっているので、インストールは必須。

$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

Rubyのインストール

例えばRubyの最新版が1.9.3-p362で、このバージョンをインストールしたい場合、コマンドは次のようになる。Ruby on Railsのインストールにzlibやlibsslが必要なので、Rubyのコンパイルの前にインストールしておく。

$ sudo apt-get install zlib1g-dev libssl-dev
$ rbenv install 1.9.3-p362

このバージョンをRuby on Railsで利用することになるので、globalの設定もここで行っておく。

$ rbenv global 1.9.3-p362
$ rbenv rehash

最後に、rubyコマンドに-vオプションをつけて実行。Rubyのバージョンが正しく表示されているかどうか確認しておく。

$ ruby -v
ruby 1.9.3-p362 (2012-12-25 revision 38607) [x86_64-linux]

Ruby on Railsのインストールと設定

UbuntuのリポジトリからインストールしたRuby on Railsをいったん削除。RubyGemsを使って最新版のRailsを再インストールする。

$ gem install -r rails

インストールの途中や最後に、file ‘lib’ not というメッセージが出る場合は、RubyGemsでRDocをインストールしておく。

$ gem install rdoc

下記のコマンドで、最新バージョンのRuby on Railsがインストールされたかどうかを確認する。

$ rails -v

最後に、Ruby on Railsで作ったWebアプリが正常に動作するかどうかのテストしておく。ホームフォルダ内にrailsappフォルダを作り、そこにtestという名前でテスト用のWebアプリを作ってみた。

$ mkdir railsapp
$ cd railsapp
$ rails new test

RailsのデフォルトのデータベースはSQLite3(昔はMySQLがデフォルトだった)だが、前もってSQLite3と関連ライブラリがインストールされていないとエラーになる。そのときは、次のコマンドを順番に実行する。

$ sudo apt-get install sqlite3 libsqlite3-dev
$ bundle install

問題がなければ、railsappフォルダ内にtestというフォルダができる。このフォルダに移動して、サーバーを起動する。

$ cd test
$ rails server

もし、ここでエラーが発生したなら、メッセージをよく読んで対処する。今回の場合、Javascript RuntimeとExecjsがないというメッセージだったので、testフォルダの中のGemfileをテキストエディタで開き、18行目あたりにある、下記の行の#マークを削除。

# gem 'therubyracer', :platforms => :ruby

続いて、行末に次の一行を追加。

gem 'execjs'

編集が終わったら保存して、次のコマンドを実行。

$ bundle install

バンドルのインストールが完了したら、もう一度rails serverコマンドを実行して、ブラウザ上からhttp://localhost:3000にアクセス。お馴染みのページが表示されていたら、サーバーは無事に立ち上がったということになる。

RubyOnRailsStart

rbenvを使わないシンプルな方法

複数のバージョンのRubyを切り替えて使う必要がない場合は、rbenvを使わず、Ruby公式ページからソースファイルをダウンロードして、解凍後に、makeコマンドでコンパイルしてインストールするという方法もある。

ダウンロードした解凍しソースファイル(tar.bz2形式の場合)を/usr/local/srcに展開し、コンパイル後、/usr/local以下にインストールするとき、コマンドラインの流れは以下のとおり。なお、Rubyをコンパイルするためには、LibYAMLというライブラリが必要なので、予め公式サイトから最新版をダウンロードしておく。

 
$ sudo tar zxvf yaml-0.14.tar.gz -C /usr/local/src
$ sudo tar jxvf ruby-1.9.3-p362.tar.bz2 -C /usr/local/src
$ cd /usr/local/src/yaml-0.14
$ ./configure -prefix=/usr/local
$ make
$ make install
$ cd /usr/local/src/ruby-1.9.3-p362
$ ./configure -prefix=/usr/local
$ make
$ make install

ここから先は、前述のとおり、すべてRubyGemsがやってくれる。なお、複数のRubyのバージョンを管理するツールとしては、RVMもある。

Comments are closed.