2019年3月末でRuby2.3系のサポートが切れるわけだが、
現在携わっているプロジェクトがまさに2.3系を使用していたので
一気に最新安定版のRuby2.6系にあげてみたのでそれの備忘録。
##現在の環境
- Ruby 2.3.1
- Rails 4.2.7.1
- CentOS 7.2
自機がwin10なので仮想環境(Vagrant+Docker)で整えています
##ひとまずRubyのバージョン確認
$ rbenv install --list
(中略)
2.6.0
2.6.1
2.7.0-dev
(中略)
rbenvのバージョンはすでに最新版になっていたので
2.6.1を選択する
※MacではないためHomebrewが使えないのでruby-buildを最新版に更新する必要がある。
(多分OSとruby-build updateみたいなワードでググれば出てくるはず)
####最新バージョンをインストール
$ rbenv install 2.6.1
インストールできたら念の為バージョン確認
$ rbenv versions
system
2.3.1
2.3.8
* 2.6.1 (set by /home/vagrant/workspace/2.6ver/myapp/.ruby-version)
他のプロジェクトではまだ2.3系を使ってるので
今回はローカルでバージョン指定しておいた
(そっちも早く上げろというのは置いといて
####gemをアップデート
割と忘れがちなgemのアップデート。
これやっとかないとRubyとgemで差分エラーみたいなものに遭遇する。
$ gem update
これが結構時間かかるのでこの間にコーヒーとかでも飲むといいよ^^
####bundlerもバージョンアップしておく
2.6系から標準でbundler
が搭載されたらしいが、
最新版インストールしたから~と言って
bundler
もそのまま上がってるわけではないので
これもアップデートしておく
$ gem install bundler
####Railsもバージョンアップ
$ gem install rails
(まだ6.0系がリリースされていなかったので5.2.2が最新版になった
###既存システムのGemfileを書き換え
Railsのバージョンを上げたので、それに伴って
Gemfileに記述しているRailsのバージョンを更新したバージョンに書き換える
# Gemfile
(中略)
gem "rails", "5.2.2"
(中略)
####書き換えたらアップデート
$ bundler update
gemの依存性問題などでエラーハンドルしたら
バージョンのコンフリクトなどが考えられるので
gem cleanup
で対処する
-あとがき-
Railsのバージョンを上げたときに、Gemfileに記述した
バージョン指定が影響していることもあるので
その際は、gem "rails"
以降のバージョン指定部分を削除しておくと
インストールができるはず。。