Edited at

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


はじめに

Rubyのバージョンアップをする際、rbenv使ってるから楽勝だろうと思ったら意外と詰まってしまったので記事に残しておく。

(もっといいやり方やアドバイスがあればコメントや編集リクエストいただけると嬉しいです)


2.5.3にupdateする記事をあげていましたが、さらに2.6.3にバージョンを上げる作業に伴って記事を更新しました :tada:


環境


  • MacOS HighSierra

  • Rails 5.1.6

  • Ruby 2.5.3

  • rbenv 1.1.1

  • Homebrew 1.8.2


やりたいこと

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

Ruby 2.6.3 リリース


手順


rbenvのインストール一覧に2.6.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-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.6.0-rc1
2.6.0-rc2
2.6.0
2.6.1

インストールする気満々だった、2.6.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.4
2.5.5
2.6.0-dev
2.6.0-preview1
2.6.0-preview2
2.6.0-preview3
2.6.0-rc1
2.6.0-rc2
2.6.0
2.6.1
2.6.2
2.6.3 <- あった〜!!
2.7.0-dev

きちんと2.6.3も入ってる。

早速installをしていく


rbenvでインストール

$ rbenv install 2.6.3

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

成功ですね :tada:


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

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

 $ rbenv versions

system
2.4.1
2.5.1
2.5.3
* 2.6.3 (set by /Users/user_name/hoge/.ruby-version)


  • 環境全体のRubyバージョンを指定したい場合

 $ rbenv global 2.6.3



  • 特定のプロジェクトだけで指定したい場合


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



$ rbenv local 2.6.3

今回は特定プロジェクトでのみ2.5.3を使いたかったのでlocalのみ適用。

もう一度設定を確認

 $ rbenv versions

system
2.4.1
2.5.1
2.5.3
* 2.6.3 (set by /Users/user_name/hoge/.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
2.5.3

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

$ gem install bundler

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

次にプロジェクトのGemfile

$ bundle install --path=vendor/bundle

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


まとめ

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