Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last 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をしないと最新バージョンは無いんだねという当たり前の発見があった。

smarthr
社会の非合理を、ハックする。
https://smarthr.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away