今回は、Ruby3系設定方法の説明をとおして、Rubyのバージョンを切り替える方法を紹介します。
記事の内容は次のとおりです。
- Rubyのバージョンを変更する方法
- Rubyのバージョン管理ツール rbenv の基本的な使い方
- 特定の環境(ディレクトリ)のみバージョンを変える方法
以下、今回使用するコマンド一覧です。
ruby -v #Rubyのバージョンの確認
brew -v #brewのバージョンの確認
brew install rbenv #rbenvをインストールする
rbenv init #rbenvを設定する
cd ~ #ホームディレクトリに移動する
ls -a #カレントディレクトリの全てのファイルを表示する
open .zshrc #.zshrcの内容を表示する
source .zshrc #.zshrcの内容を反映させる
rbenv #rbenvのバージョンを表示する
rbenv install -l #インストール可能なバージョンを表示する
rbenv install 3.1.0 #Rubyのバージョン3.1.0をインストールする
rbenv versions #インストール済みのRubyのバージョンと現在の環境で設定されているバージョンを確認する
rbenv global 3.1.0 #デフォルトで使用するRubyのバージョンを設定する
rbenv rehash #関連ファイルを再配置して使用可能にする
rbenv local 2.7.5 #カレントディレクトリ内で使用するRubyのバージョンを設定する
ruby --version #現在の環境で使用しているRubyのバージョンを表示する
初期確認と準備
Ruby のバージョンの確認
まずは現在の状態を確認しましょう。
次のコマンドで、インストールされている ruby のバージョンを確認します。
ruby -v
ここで、「 3 . * . * 」が表示されていれば、すでにRuby3系を使用することができます。( * :いずれかの数字)
Macを使用している方は「 2 . * . * 」のバージョンが表示されると思いますし、Ruby がインストールされていない場合は「 ruby っていうコマンド使えないよ」と表示されると思います。
本記事はそんな方に向けなので、一緒にRuby3系をインストールしていきましょう!
Homebrew のインストール
次に、Homebrewがインストールされているか確認して、されていなければインストールしていきます。
Homebrew(ホームブリュー):
・MacOS上にソフトウェアの導入を単純化するパッケージ管理システム
それでは次のコマンドを実行して、Homebrewのバージョンを確認しましょう。
brew -v
バージョンが表示された場合は、すでにインストールされている状態なので次の「 rbew のインストール」に進んでください。
バージョンが表示されない場合は、次のURLにアクセスしてインストール用のコマンドをコピーして、ターミナルにペーストして実行しましょう。
※ パスワードを要求された場合は、いつもMacを開いたときに入力しているパスワードを入力してください。
※ 時間がかかる場合があるので、スクワットしながら待ちましょう。
Homebrew のインストールが終わったら、再度バージョンを確認するコマンドを実行して、無事にインストールされたことを確かめてください。
バージョンが表示されたらOKです。
brew -v
rbenv のインストール
次に、Homebrew を使用して rbenv をインストールしていきます。
rbenv(アールビーエンブ):
・Rubyのバージョンを管理するツール
・複数のバージョンを切り替えて使用できる
下記のコマンドを実行して rbenv をインストールしてください。
brew install rbenv
rbenvの設定
rbenv は、Rubyのバージョン管理ツールです。主に次のことができます。
- Rubyのバージョンを新規でインストールする
- 使用するバージョンを設定する
- 特定のディレクトリ内のみ、指定したバージョンを使うように設定できる
- Rubyのバージョンに合わせてライブラリ(gem)周辺のバージョンも更新する
それでは、rbenv の設定をしていきましょう。
シェルで rbenv を使えるようにする
下記コマンドを実行して、rbenv の設定をします。
rbenv init コマンドは、シェルで rbenv を使用できるようにするコマンドです。(シェル内に拡張コマンドを読み込む行を橋渡しするコマンド)
rbenv init
rbenv init コマンドを実行すると、次のようなメッセージが表示されると思います。
※次のようなメッセージが表示がない場合は、.zshrc の中を確認してください。「 eval "$(rbenv init - zsh)" 」が書かれていればOKです。
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init - zsh)"
上記のメッセージは、
シェルで rbenv を使用できるように、~/.zshrc に 「 eval "$(rbenv init - zsh)" 」を追記してください。
という意味なので、ホームディレクトリ(~)にある .zshrc を編集していきます。
.zshrc を編集する
まずは、ホームディレクトリ(~)の下に .zshrc があるか確認しましょう。
次のコマンドを実行してください。(各行、#以降はコメントなのでうたないでください)
cd ~ #ホームディレクトリに移動する
ls -a #カレントディレクトリの全てのファイルを表示する
ファイルを表示したときに、.zshrc がなければ、次のコマンドで実行してファイルを作成します。(ある場合はスキップしてください)
作成したら、もう一度 ls -a コマンドでファイルが作成されているか確認してください。
touch .zshrc #.zshrcファイルを作成する
それでは、.zshrc に「 eval "$(rbenv init - zsh)" 」を追記していきます。
次のコマンドを実行して、.zshrc を表示してください。
open .zshrc
.zshrc のファイルの中身は人によって異なると思いますが、下記「編集後」と同じ状態になっていればOKです。
export PS1="%1~ %# "
export PS1="%1~ %# "
eval "$(rbenv init - zsh)"
編集後は、しっかり保存してください。( [commandキー] + [s] など )
.zshrc の内容をシェルで反映させる
次のコマンドを実行して、編集した .zshrc ファイルをシェルに反映させましょう。
source .zshrc
sourceコマンド:
・ファイル内のコマンドを実行するコマンド
・設定ファイルを反映させる際によく使う
正常に反映されるとシェルで rbenv を使用できるようになります。
一旦、次のコマンドを実行して rbenv のバージョンを確認してみましょう。
rbenv
バージョンが表示されればOKです。
rbenv 1.2.0-11-ge4f61e6
Usage: rbenv <command> [<args>]
Some useful rbenv commands are ...
Ruby3系のインストール
それでは、rbenvを使用して Ruby3系 をインストールしていきましょう。
まずは次のコマンドを実行して、インストール可能なバージョンを確認します。
rbenv install -l
コマンドを実行すると、下記のようにインストール可能なバージョンが表示されます。
2.6.9
2.7.5
3.0.3
3.1.0
jruby-9.3.2.0
mruby-3.0.0
rbx-5.0
truffleruby-21.3.0
truffleruby+graalvm-21.3.0
その中から、Ruby3系のものをインストールしましょう。
次のコマンドでインストールを実行します。(時間がかかります)
rbenv install 3.1.0
インストールしただけでは、使用するRubyのバージョンとしては設定されていません。
インストールした後に使用するバージョンとして設定する必要があります。(この先ですぐ設定します)
インストールが完了した後に、次のコマンドを実行してみましょう。
下記のコマンドを実行すると、インストールしたバージョンと現在の環境で動いているバージョン(米印)を確かめることができます。
rbenv versions
表示は下記のとおりです。(人によってことなります)
* system (set by /Users/user_name/.rbenv/version)
3.1.0
米印が付いているのが現在の環境で動いているバージョンになります。
つまり、バージョン3.1.0 はインストールはされているけど、使用されていない状態です。
System とは:
・ホストOSにインストールされたRubyのことを指します。(Macには元々Ruby2系が入っている)
・ただし、インストール先のパスなどが異なるため、権限エラーなどで使いづらい場面があります。
・そのため、Systemとは別にRubyをインストールしておくことをオススメします。(Ruby2系であっても)
次のコマンドを実行して、先ほどインストールした Ruby3.1.0 をデフォルトに設定します。
rbenv global 3.1.0
デフォルトで使用する Ruby のバージョンを変更すると、全てのシェルで 3.1.0 で使えるようになります。
再度、下記のコマンドを実行して、現在の環境で動いているバージョンを確認してみましょう。
rbenv versions
下記のように、デフォルトで設定したバージョンに米印が付いていたらOKです。
system
* 3.1.0 (set by /Users/user_name/.rbenv/version)
次にコマンドを実行して関連ファイルを再配置して使用可能にしましょう。
rbenv rehash
rbenv rehash で何をしているのか:
・Rubyのバージョンに合わせて、gemのバージョンを設定する。
・「gem」とは、各種の便利な機能をRubyに追加するライブラリ。
・rbenvを使用してRubyのバージョンを設定した後はrehashコマンドを実行する。
最後に、念のため、次のコマンドを実行して、設定されている ruby のバージョンを確認してみましょう。
ruby --version
先ほど設定した 3.1.0 が表示されればOKです。
補足:カレントディレクトリで使うRubyのバージョンを設定する
「 rbenv global 3.1.0 」コマンドでデフォルトで使用するRubyのバージョンを設定しました。
ここでは、特定のディレクトリ内で使用するRubyのバージョンを設定する方法を説明します。
つまり、デフォルトで使用している Ruby のバージョンとは違うバージョンを使う手順について説明します。
今回は、~ / Desktop / ruby_test で使うRubyのバージョンを2系にします。
まずは、次のコマンドを実行して、インストール済みの Ruby のバージョンを確認しましょう。
rbenv versions
上記のコマンドを実行すると、次のようにインストール済みのバージョンが表示されます。(人によって異なります)
米印が付いているバージョンが現在の環境で動いている Ruby のバージョンです。
system
* 3.1.0 (set by /Users/user_name/.rbenv/version)
これより、Ruby2系がインストールされていないことがわかるので、まずはRuby2系をインストールします。
次のコマンドを実行して、インストール可能なバージョンを確認しましょう。
rbenv install -l
記事作成時、インストール可能なバージョンは次のとおりです。
2.6.9
2.7.5
3.0.3
3.1.1
jruby-9.3.3.0
mruby-3.0.0
rbx-5.0
truffleruby-22.0.0.2
truffleruby+graalvm-22.0.0.2
今回は、バージョン2.7.5 をインストールします。
次のコマンドで、バージョン2.7.5 のRubyをインストールします。
rbenv install 2.7.5
インストールが完了したら、再度下記コマンドを実行してインストール済みの Ruby のバージョンを確認しましょう。
rbenv versions
下記のように バージョン2.7.5 がイントールされたことが確認できます。
米印が 2.7.5 に付いていないので使用する Ruby のバージョンとしては設定されていません。
system
2.7.5
* 3.1.0 (set by /Users/user_name/.rbenv/version)
作業用のディレクトリに移動します。(私は、~/Desktop/ruby_test で作業しますが、各自の作業用ディレクトリを使用してください)
cd ~/Desktop/ruby_test
カレントディレクトを作業用ディレクトリに移したら、次のコマンドで「そのディレクトリ内で使用する Ruby のバージョン」を設定します。
rbenv local 2.7.5
これでローカル上(カレントディレクトリ上)で使用される Ruby のバージョンが 2.7.5 に設定されていると思います。
確認してみましょう。
rbenv versions
下記のとおり、使用する Ruby のバージョンが 2.7.5 に設定されています。
system
* 2.7.5 (set by /Users/user_name/Desktop/ruby_test/.ruby-version)
3.1.0
これで、特定のローカル環境に対してRubyのバージョンを設定することができました。
バージョンを設定した後は、そのバージョンに合わせたライブラリ(gem)をインストールする必要があります。次のコマンドを実行すればOKです。
次のコマンドを実行して、現在の環境で動いているRubyのバージョンに合わせたライブラリ(gem)を設定しましょう。
rbenv rehash
念のため、ほかの環境(ディレクトリ)では、デフォルトで設定したバージョン(3.1.0)が使用されていることを確認してみましょう。
cd ../
rbenv versions
下記のとおり、ほかの環境ではデフォルトで設定したバージョン(3.1.0)が使用されていることが確認できます。
system
2.7.5
* 3.1.0 (set by /Users/user_name/.rbenv/version)
以上です。お疲れ様でした。