はじめに
Rubyのバージョンアップをする際、rbenv使ってるから楽勝だろうと思ったら意外と詰まってしまったので記事に残しておく。
(もっといいやり方やアドバイスがあればコメントや編集リクエストいただけると嬉しいです)
2.5.3にupdateする記事をあげていましたが、さらに2.6.3にバージョンを上げる作業に伴って記事を更新しました
環境
- 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したい。
手順
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
成功ですね
インストールしたバージョンを使用するように設定
まずは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のインストールが成功した
次にプロジェクトのGemfile
$ bundle install --path=vendor/bundle
Rubyのバージョンを最新安定版の2.6.3にupdateして、プロジェクトを動かす準備ができた。
まとめ
バージョン管理ソフトもupdateをしないと最新バージョンは無いんだねという当たり前の発見があった。