[Ruby on Rails 3, Ruby on Rails 4] Ubuntu に rbenv + Bundler で Rails 4 をインストールする

Vagrant VM 上の素の Ubuntu 12.04.3 に、rbenv+Bundler をつかって rails をインストールしてみました。

Contents

Box

Ubuntu 12.04.3
http://files.vagrantup.com/precise32.box

パッケージのインストール

とりあえず事前に以下をやっていました。

$ sudo apt-get update
$ sudo apt-get upgrade

以下のパッケージをインストールします。

$ sudo apt-get install build-essential git curl zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev sqlite3 libsqlite3-dev nodejs

rubyインストール時に make がなくて怒られたので、build-essentialを追加しました。g++も含まれるので外します。
nodejsについては、Railsで必要なJavaScript Runtimeとして利用します(後述)。

rbenv

最後の行は、シェル再起動。

$ git clone git://github.com/sstephenson/rbenv.git .rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ exec $SHELL

Ubuntu 12.04からapt-getでrbenvのインストールが可能だそうです。

ruby-build

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

rubyのインストール

$ rbenv install 2.0.0-p247
$ rbenv rehash
$ rbenv global 2.0.0-p247

確認

$ ruby -v
$ rbenv version
$ which ruby

.gemrc

$ echo "install: --no-rdoc --no-ri" >> ~/.gemrc
$ echo "update: --no-rdoc --no-ri" >> ~/.gemrc

Bundlerのインストール

とりあえず gem update しておきました。

$ gem update
$ gem install bundler

Railsのインストール

rails 3.2 をインストールする。

$ gem install rails --version="~> 3.2"
$ rbenv rehash

確認

サンプルプロジェクトを作成して確認してみる。

$ mkdir work
$ cd work/
$ rails new hello --skip-bundle
$ cd hello/

Gemfileの編集は特になし。therubyracerをつかわず、上記でインストールしたnode.jsを利用する。

therubyracerを入れずに rails generate scaffold~ すると Could not find a JavaScript runtime.と言われた。
ググってみると、railsはJavaScript Runtime(エンジン)が必要で、railsは ExecJS というgemが環境にインストールされているJavaScript Runtimeを探してくるが見つからなくて動かねえよってことらしい。
ちなみにtherubyracerにはv8が入っている。再びググるとv8まわりでトラブルが起きている記事や、メモリ使用量が多いためHerokuでは非推奨という記述が見つかった。
うちはnode.jsを入れることにする。(nodejsもv8だった)。

$ bundle install
$ rails g scaffold user name:string email:string
$ rake db:migrate
$ rails s

設定したアドレス(ex. 192.168.33.11)から、操作が行えればインストールが完了している。
http://192.168.33.11:3000/users

Railsをインストール(Bundler)

rails 4.0 をインストールしてみます。

$ cd work
$ mkdir sample
$ cd sample
$ bundle init

Gemfile を編集して、コメントアウトを外す。

$ bundle install --path vendor/bundle
$ bundle exec rails new . --skip-bundle
$ bundle install --path vendor/bundle

確認

$ bundle exec rails g scaffold user name:string email:string
$ bundle exec rake db:migrate
$ bundle exec rails s

Rails 4.0 も動きました。
http://192.168.33.11:3000/users

補遺

後々使うかなと言うことで、Apache、MySQLのパッケージも追加してました。

$ sudo apt-get install apache2 libmysqlclient-dev mysql-server

vim

$ sudo apt-get install vim