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

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

[markdown]

> * [Ruby on Rails 3.2 を Ubuntu にインストールする手順をかなり丁寧に説明してみました – Rails 雑感 – Ruby on Rails with OIAX](http://www.oiax.jp/rails/zakkan/rails_3_2_installation_on_ubuntu.html)
> * [Lubuntuにrbenvでrubyとrailsを入れる – cherenkov's暗中模索blog](http://makev.blogspot.jp/2012/11/lubunturbenvrubyrails.html)

## 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

> * [sstephenson/rbenv · GitHub](https://github.com/sstephenson/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のインストールが可能](http://makev.blogspot.jp/2012/11/lubunturbenvrubyrails.html)だそうです。

## ruby-build

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

> * [ruby-build をアップデートするには、ruby-build ディレクトリで git pull コマンドを実行してから、sudo ./install.sh を実行してください。](http://www.oiax.jp/rails/zakkan/rails_3_2_installation_on_ubuntu.html)

## 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だった)。](http://makev.blogspot.jp/2012/11/lubunturbenvrubyrails.html)

“`
$ 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 を編集して、コメントアウトを外す。

> * [Rails4 をインストールして新規プロジェクトを始める | deadwood](https://www.d-wood.com/blog/2013/07/01_4177.html)

“`
$ 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
“`

[/markdown]