まっしろけっけ

めもてきなやーつ

rubyのversion upをした時の作業内容メモ

rubyを2.0系から2.1系に変更したときのメモ

2.1での変更点確認

とりあえず2.0系から2.1系での変更点を把握しないといけないので
こちらで確認してみる。
Ruby 2.1 では深刻な非互換もなく、速度の向上を含めた多くの改善が行われています。」ってあるので大丈夫な気がする。(ちゃんと変更点を全て調べましたよ!)

ruby version up

実際に変更を行うので黒い画面でぽちぽちしていく

$ rbenv install --list
  .
  .
  2.1.0-dev
  2.1.0-preview1
  2.1.0-preview2
  2.1.0-rc1
  2.1.1
  2.2.0-dev
  .
  .
  #他にもいっぱい出て来る

最新の2.1.2が出て来ないのでruby buildを最新にする

# もしかしたら~/.rbenv/plugins/ruby-build内でgit pullとかでもいけたかも
# 追記:git pullでいけた場合といけない場合があった
$ rm -rf ~/.rbenv/plugins/ruby-build/
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ rbenv install --list
  .
  .
  2.1.0-preview1
  2.1.0-preview2
  2.1.0-rc1
  2.1.1
  2.1.2
  2.2.0-dev
  .
  .
$ rbenv install -v 2.1.2 # ちょっと時間かかる
$ rbenv versions # インストール済みのruby versionを確認してみる
  system
* 2.0.0-p451 (set by /hogehoge)
  2.1.2
$ rbenv global 2.1.2 # 使用するruby versionを変更する
$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877)

これでruby のversion upが完了

bundlerを更新

rubyの更新終わったしこれで終わりという訳ではなく他にも色々しなければならないことが・・・

$ bundle -v
rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.0.0-p451
# 以前使用していたrubyのversion用のbundlerしか入ってないって言われた
$ gem install bundler -v 1.3.5
$ bundle -v
Bundler version 1.3.5

bundlerのversionが1.3.5なのは
ruby 2.0.0-p451の際のbundlerのversionと同じものをinstallしたかった為

rails アプリケーションを動かす

続いて作成しているrailsアプリケーションを動かす

$ rails s
rbenv: rails: command not found

The `rails' command exists in these Ruby versions:
  2.0.0-p451
# bundlerの時と一緒で怒られた
$ bundle install # rails以外も更新する為
$ rails s

これで一応アプリケーションが立ち上がりました。

テストが通るかを確認する

恐らく皆さんテストを書いているでしょうということで
テストが正常に通るかを試してrubyをversion upしたことによるバグがないか確認をする。
(こちらはアプリケーションを立ち上げる前の方がいいと思いますが、万が一テストを書いてない人がいるかもしれないので後に書きました。)

$ bundle exec rspec

今回は落ちたspecはなかったです。
テストを書いていると、このような状況でも非常に役に立ちますね。

その他

chefにてrubyのversionを記述している箇所の変更や
jenkinsでdeployを行っている場合はjenkins周りの設定の変更も
必要になって来るかと思いますのでお忘れなく!!