maesblog

RVMでMacのRubyをバージョンアップし、Rails開発環境を構築する

約2年前にRuby on Railsを会社で使うことがあり、自分のMacにもRVMを使ってRailsの環境を作りました。それからしばらくして、使うことがなくなりずっと、そのままになっていました。その間、RubyもRailsもかなりアップデートされており、このままではついていけなくなりそうなので、ちょっと時間を見つけて、今回自分のRails環境をバージョンアップさせてみました。Railsに関してはプロジェクトごとに管理できるようにしました

Ruby ルビーRuby on Rails

それぞれビフォーアフターのバージョンは以下の通りです。

  • Ruby: 1.9.3 → 2.2.0
  • Rails: 3.2.11 → 4.2

自分のMacの環境は以下の通りです。

  • Mac OSX Yosemite 10.10.1

さっそくバージョンアップの流れを書いていきます。Rubyのバージョンアップには、RVMというRubyのバージョン管理システムを使っています。(ただ現在の主流は軽量なrbenvの方だと言う話をよく聞いています。)

RVMのバージョンアップ

まず初めにRVMのバージョンを確認します。

$ rvm -v

rvm 1.18.6 (stable) by Wayne E. Seguin , Michal Papis  [https://rvm.io/]

最も安定したバージョンにRVMをアップグレードする

$ rvm get stable

バージョンを確認します。1.18.6から1.26.9にバージョンアップしたようです。

$ rvm -v

rvm 1.26.9 (latest) by Wayne E. Seguin , Michal Papis  [https://rvm.io/]

補足として、RVMのバージョンが古すぎてバージョンアップができない場合は、以下のコマンドを試すと良いということです。

$ rvm get head
$ rvm reload
$ rvm get stable

それでダメな場合は以下のコマンドで、インストーラーをアップデートしてくださいということです。

$ \curl -sSL https://get.rvm.io | bash -s stable
$ rvm reload

RVMのバージョンアップの方法の詳細については以下を参照してください。

Rubyのバージョンアップ

RVMを最新版にしたら、次にRubyをバージョンアップさせます。

Rubyのバージョンを確認します。

$ ruby -v
ruby 1.9.3p385 (2013-02-06 revision 39114) [x86_64-darwin12.2.0]

[rvm list]でも確認可能です。

$ rvm list

rvm rubies

=* ruby-1.9.3-p385 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

RVMでインストール可能なRubyのバージョンを確認します。Rubyの最新版は2.2.0となっています。

$ rvm list known

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p598]
[ruby-]2.1.4
[ruby-]2.1[.5]
[ruby-]2.2.0
[ruby-]2.2-head
ruby-head

# for forks use: rvm install ruby-head- --url https://github.com/github/ruby.git --branch 2.1

# JRuby
jruby-1.6.8
jruby[-1.7.18]
jruby-head

# Rubinius
rbx-1.3.3
rbx-2.2.10
rbx[-2.4.1]
rbx-head

# Opal
opal

# Minimalistic ruby implementation - ISO 30170:2012
mruby[-head]

# Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7][-2012.02]

# GoRuby
goruby

# Topaz
topaz

# MagLev
maglev[-head]
maglev-1.0.0

# Mac OS X Snow Leopard Or Newer
macruby-0.10
macruby-0.11
macruby[-0.12]
macruby-nightly
macruby-head

# IronRuby
ironruby[-1.1.3]
ironruby-head

最新版のRuby 2.2.0をインストールします。

$ rvm install 2.2.0

ちゃんとインストールされたか確認します。

$ rvm list

rvm rubies

 * ruby-1.9.3-p385 [ x86_64 ]
=> ruby-2.2.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

最新版のRuby2.2.0をデフォルトとして設定します。(RVMを使うと複数のバージョンを切り替えて使うことができます。)

$ rvm --default use 2.2.0

Using /Users/mae_stro/.rvm/gems/ruby-2.2.0

デフォルトとして設定されたか確認します。

$ rvm list

rvm rubies

   ruby-1.9.3-p385 [ x86_64 ]
=* ruby-2.2.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Rubyのアップグレード方法とデフォルトに設定する方法についての詳細は以下を参照してください。

RubyGemsのバージョンアップ

RailsはRubyGemsを使ってインストールするため、念のためRubyGemsもバージョンアップさせておきます。

まずはバージョンを確認します。

$ gem -v

2.4.5

RubyGemsをアップデートします。「Latest version currently installed. Aborting.」とメッセージが出た場合は、すでに最新となっているということです。

$ gem update --system

Latest version currently installed. Aborting.

以下のコマンドを実行すると、RubyGemsのバージョンアップの結果不要になったファイルなどを削除してくれます。

$gem clean

Gemコマンドの詳細については以下をご参照ください。

Railsのバージョンアップ

以下のコマンドで新しいバージョンのRailsがシステムにインストールされます。

$ gem install rails

ただ、ここ最近では、ころころ変わるバージョンに対応したり、複数人での開発に対応したりするために、プロジェクトごとにRailsをインストールするのが主流となってきています。(npmなんかでも同様ですね。)

gemコマンドでシステムにインストールするのはbundlerのみとし(bundleコマンドをシステムで使えるようにするため)、bundlerを使ってプロジェクトごとにgemパッケージをインストールするようにします。

$ gem install bundler

Fetching: bundler-1.7.12.gem (100%)
Successfully installed bundler-1.7.12
Parsing documentation for bundler-1.7.12
Installing ri documentation for bundler-1.7.12
Done installing documentation for bundler after 3 seconds
1 gem installed

mkdirしてプロジェクト用のフォルダを作り、作ったフォルダに移動します。

$ mkdir rails_project
$ cd rails_project

Gemfileを作ります。

$ bundle init

Writing new Gemfile to /Users/mae_stro/Sites/rails_project/rails_prj2/Gemfile

作られたGemfileを開き、「#gem "rails"」のコメントアウトを外します。

$ vim Gemfile

# A sample Gemfile
source "https://rubygems.org"

gem "rails"

「--path vendor/bundle」コマンドをつけて[bundle install]すると、プロジェクトフォルダ内に「vendor」→「bundle」というディレクトリが作られ、Gemfileに書かれているgemパッケージがインストールされます。

$ bundle install --path vendor/bundle

Fetching gem metadata from https://rubygems.org/...........
Resolving dependencies...
Using rake 10.4.2
Installing i18n 0.7.0
Installing json 1.8.2
Installing minitest 5.5.1
Installing thread_safe 0.3.4
Installing tzinfo 1.2.2
Installing activesupport 4.2.0
Installing builder 3.2.2
Installing erubis 2.7.0
Installing mini_portile 0.6.2
Installing nokogiri 1.6.6.1
Installing rails-deprecated_sanitizer 1.0.3
Installing rails-dom-testing 1.0.5
Installing loofah 2.0.1
Installing rails-html-sanitizer 1.0.1
Installing actionview 4.2.0
Installing rack 1.6.0
Installing rack-test 0.6.3
Installing actionpack 4.2.0
Installing globalid 0.3.0
Installing activejob 4.2.0
Installing mime-types 2.4.3
Installing mail 2.6.3
Installing actionmailer 4.2.0
Installing activemodel 4.2.0
Installing arel 6.0.0
Installing activerecord 4.2.0
Using bundler 1.7.12
Installing hike 1.2.3
Installing multi_json 1.10.1
Installing thor 0.19.1
Installing railties 4.2.0
Installing tilt 1.4.1
Installing sprockets 2.12.3
Installing sprockets-rails 2.2.4
Installing rails 4.2.0
Your bundle is complete!
It was installed into ./vendor/bundle

インストールされたGemパッケージを確認します。Railsの4.2.0もインストールされていることがわかります。

$ bundle list

Gems included by the bundle:
  * actionmailer (4.2.0)
  * actionpack (4.2.0)
  * actionview (4.2.0)
  * activejob (4.2.0)
  * activemodel (4.2.0)
  * activerecord (4.2.0)
  * activesupport (4.2.0)
  * arel (6.0.0)
  * binding_of_caller (0.7.2)
  * builder (3.2.2)
  * bundler (1.7.12)
  * byebug (3.5.1)
  * coffee-rails (4.1.0)
  * coffee-script (2.3.0)
  * coffee-script-source (1.8.0)
  * columnize (0.9.0)
  * debug_inspector (0.0.2)
  * debugger-linecache (1.2.0)
  * erubis (2.7.0)
  * execjs (2.2.2)
  * globalid (0.3.0)
  * hike (1.2.3)
  * i18n (0.7.0)
  * jbuilder (2.2.6)
  * jquery-rails (4.0.3)
  * json (1.8.2)
  * loofah (2.0.1)
  * mail (2.6.3)
  * mime-types (2.4.3)
  * mini_portile (0.6.2)
  * minitest (5.5.1)
  * multi_json (1.10.1)
  * nokogiri (1.6.6.1)
  * rack (1.6.0)
  * rack-test (0.6.3)
  * rails (4.2.0)
  * rails-deprecated_sanitizer (1.0.3)
  * rails-dom-testing (1.0.5)
  * rails-html-sanitizer (1.0.1)
  * railties (4.2.0)
  * rake (10.4.2)
  * rdoc (4.2.0)
  * sass (3.4.10)
  * sass-rails (5.0.1)
  * sdoc (0.4.1)
  * slop (3.6.0)
  * spring (1.2.0)
  * sprockets (2.12.3)
  * sprockets-rails (2.2.4)
  * sqlite3 (1.3.10)
  * thor (0.19.1)
  * thread_safe (0.3.4)
  * tilt (1.4.1)
  * turbolinks (2.5.3)
  * tzinfo (1.2.2)
  * uglifier (2.7.0)
  * web-console (2.0.0)

カレントディレクトリにrailsアプリを生成します。Gemfileを上書きするかどうか聞かるので、「y」と入力し上書きを許可します。

$ bundle exec rails new .

       exist  
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore
Overwrite /Users/mae_stro/Sites/rails_project/rails_prj2/Gemfile? (enter "h" for help) [Ynaqdh] y

以下のようにフォルダやファイルが生成されます。

rails_app

サーバーを起動します。

$ bundle exec rails s

=> Booting WEBrick
=> Rails 4.2.0 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2015-01-24 19:23:51] INFO  WEBrick 1.3.1
[2015-01-24 19:23:51] INFO  ruby 2.2.0 (2014-12-25) [x86_64-darwin14]
[2015-01-24 19:23:51] INFO  WEBrick::HTTPServer#start: pid=71904 port=3000

ブラウザのアドレスバーにlocalhost:3000と入力し、以下の画面が表示されれば成功です。

Ruby_on_Rails__Welcome_aboard

Railsのインストールに関しては以下の記事を参考にしました。


これでRubyとRailsの最新版が使えるようになりました。最後にRails 4系での開発に参考となるサイトと書籍を紹介しておきます。

パーフェクト Ruby on Rails
  • 『パーフェクト Ruby on Rails』
  • 著者: すがわらまさのり, 前島真一, 近藤宇智朗, 橋立友宏
  • 出版社: 技術評論社
  • 発売日: 2014年6月6日
  • ISBN: 4774165166

関連記事

コメント

  • 必須

コメント