約2年前にRuby on Railsを会社で使うことがあり、自分のMacにもRVMを使ってRailsの環境を作りました 。それからしばらくして、使うことがなくなりずっと、そのままになっていました。その間、RubyもRailsもかなりアップデートされており、このままではついていけなくなりそうなので、ちょっと時間を見つけて、今回自分のRails環境をバージョンアップさせてみました。Railsに関してはプロジェクトごとに管理できるようにしました 。
それぞれビフォーアフターのバージョンは以下の通りです。
Ruby: 1.9.3 → 2.2.0 Rails: 3.2.11 → 4.2 自分のMacの環境は以下の通りです。
さっそくバージョンアップの流れを書いていきます。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
以下のようにフォルダやファイルが生成されます。
サーバーを起動します。
$ 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と入力し、以下の画面が表示されれば成功です。
Railsのインストールに関しては以下の記事を参考にしました。
これでRubyとRailsの最新版が使えるようになりました。最後にRails 4系での開発に参考となるサイトと書籍を紹介しておきます。
『パーフェクト Ruby on Rails』 著者: すがわらまさのり, 前島真一, 近藤宇智朗, 橋立友宏 出版社: 技術評論社 発売日: 2014年6月6日 ISBN: 4774165166
Amazon.co.jpで詳細を見る
コメント