Rubyのバージョンアップ手順
経緯
Security fix が入ったパッチバージョンがリリースされていたので。
影響を受けるバージョンは以下。
環境
実際に適用した運用中のアプリケーションは、Amazon LinuxだったりUbuntuだったりそれベースのDockerだったりいろいろだが、今回はrbenvを利用している環境向けと、rubyの公式イメージを元にしたDocker向けについて書く。
ちなみに、2.5.1
を 2.5.8
に上げる例とする。
ソースコードの変更箇所
互換性の確認は任せる。
- .ruby-version
- 2.5.1 + 2.5.8
- Gemfile
- ruby "2.5.1" + ruby "2.5.8"
- Gemfile.lock(※
bundle install
すると自動で更新される)
RUBY VERSION - ruby 2.5.1p57 + ruby 2.5.8p224
- Dockerfile
- FROM ruby:2.5.1 + FROM ruby:2.5.8
- .circleci/config.yml
- image: circleci/ruby:2.5.1 + image: circleci/ruby:2.5.8
弊プロジェクトではこんな感じ。
Docker環境でのバージョンアップ
ビルドするだけ。
docker build -t foo .
または
docker-compose build --no-cache
rbenv環境でのバージョンアップ
- インストールできるバージョンを確認。
$ rbenv install --list 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.6.0-dev 2.6.0-preview1 2.6.0-preview2 2.6.0-preview3 2.6.0-rc1 2.6.0-rc2 ...
cd /usr/local/rbenv git pull cd /usr/local/rbenv/plugins/ruby-build git pull
rbenv install 2.5.8 # 必要に応じて rbenv global 2.5.8 rbenv rehash
- バージョンの確認。
$ ruby -v ruby 2.5.8p224 (2020-03-31 revision 67882) [x86_64-linux]
※ここで一つ注意したいのが、.ruby-version
があるディレクトリにいると、rbenv global
よりもファイルに記載のバージョンが優先される。
- bundlerのインストール
rbenv exec gem install bundler
- 新しいソースを置いてgemの再インストール
bundle install
以上です。