Ruby
rbenv

rbenvでRubyのバージョンを最新安定版にupdate

はじめに

Rubyのバージョンアップをする際、rbenv使ってるから楽勝だろうと思ったら意外と詰まってしまったので記事に残しておく。
(もっといいやり方やアドバイスがあればコメントや編集リクエストいただけると嬉しいです)

環境

  • MacOS HighSierra
  • Rails 5.1.6
  • Ruby 2.5.1
  • rbenv 1.1.1
  • Homebrew 1.8.2

やりたいこと

プロジェクトで使用しているRubyのバージョンを2.5.1から現時点で最新の2.5.3にupdateしたい。

Ruby 2.5.3 リリース

手順

rbenvのインストール一覧に2.5.3が無い!

$ rbenv install --list

Available versions:
  1.8.5-p52
  1.8.5-p113
  1.8.5-p114
  1.8.5-p115
 ---中略---
  2.5.0-dev
  2.5.0-preview1
  2.5.0-rc1
  2.5.0
  2.5.1
  2.6.0-dev
  2.6.0-preview1
  2.6.0-preview2

インストールする気満々だった、2.5.3が無い!!

おそらくrbenvをインストールしてから一度もupdateしていないからかな?と思ったのでrbenvのドキュメントを読むことにした。
https://github.com/rbenv/rbenv#upgrading-with-homebrew
この中に

To upgrade to the latest rbenv and update ruby-build with newly released Ruby versions, upgrade the Homebrew packages:
(最新のrbenvにアップグレードし、新しくリリースされたRubyバージョンでruby-buildを更新するには、Homebrewパッケージをアップグレードします。)

$ brew upgrade rbenv ruby-build

とあった。まさにしたかったことだったので実行

$ brew upgrade ruby-build
.
.
.

==> Upgrading 1 outdated package:
ruby-build 20180822 -> 20181106
==> Upgrading ruby-build
==> Downloading https://github.com/rbenv/ruby-build/archive/v20181106.tar.gz
==> Downloading from https://codeload.github.com/rbenv/ruby-build/tar.gz/v20181106
######################################################################## 100.0%
==> ./install.sh
🍺  /usr/local/Cellar/ruby-build/20181106: 420 files, 212.6KB, built in 6 seconds

成功したので再度インストール可能なバージョンリストを表示してみる

$ rbenv install --list
Available versions:
  1.8.5-p52
  1.8.5-p113
  1.8.5-p114
  1.8.5-p115
  1.8.5-p231
  ---中略---
  2.5.0-rc1
  2.5.0
  2.5.1
  2.5.2
  2.5.3 <- あった〜〜!!!
  2.6.0-dev
  2.6.0-preview1
  2.6.0-preview2
  2.6.0-preview3

きちんと2.5.3も入ってる。

早速installをしていく

rbenvでインストール

$ rbenv install 2.5.3
ruby-build: use openssl from homebrew
Downloading ruby-2.5.3.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.bz2
Installing ruby-2.5.3...
ruby-build: use readline from homebrew
Installed ruby-2.5.3 to /Users/user_name/.rbenv/versions/2.5.3

成功ですね :tada:

インストールしたバージョンを使用するように設定

まずはrbenvにどんなバージョンがインストールされているか確認

 system
  2.4.1
* 2.5.1 (set by /Users/user_name/.rbenv/version)
  2.5.3
  • 環境全体のRubyバージョンを指定したい場合
 $ rbenv global 2.5.3
  • 特定のプロジェクトだけで指定したい場合

    • 以下のコマンドを適用したいプロジェクトで実行
$ rbenv local 2.5.3

今回は特定プロジェクトでのみ2.5.3を使いたかったのでこちらを選択。

もう一度設定を確認

 $ rbenv versions
  system
  2.4.1
  2.5.1
* 2.5.3 (set by /Users/user_name/dir_name/app/.ruby-version)

きちんと反映されていることがわかる。

bundle installし直す

bundle installをしようとしたらbundleコマンドが見つからないよと怒られた。

$ bundle install
rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.4.1
  2.5.1

Rubyのバージョンごとにgemをインストールしないといけないらしい。

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

bundlerのインストールが成功した:tada:

次にプロジェクトのGemfile

$ bundle install

Rubyのバージョンを最新安定版の2.5.3にupdateして、プロジェクトを動かす準備ができた。

まとめ

バージョン管理ソフトもupdateをしないと最新バージョンは無いんだねという当たり前の発見があった。