今使っているRubyのバージョンは、–versionオプションを指定してrubyコマンドを実行すれば表示されます。しかし、OS標準のRubyが開発で使いたいバージョンとは限りません。そして指定されたRubyのバージョンを利用するには、rbenvコマンドを利用します。
今回は今使っているRubyのバージョンをチェックする方法と、rbenvコマンドを利用したRubyのバージョン切り替え方法について紹介します。
今使っているRubyのバージョンは?
プログラミング言語Rubyは、2020年12月にバージョン3がリリースされました。これ以降のバージョンは従来のバージョンに比べてパフォーマンスの改善など、多くの機能が向上しています。
では、今使っているRubyのバージョンが幾つかご存じでしょうか。Ruby on Railsを利用してWebシステムを開発する場合、使用するRubyのバージョンを本番環境に合わせるのが常識です。少なくとも、今使っているRubyのバージョンをチェックできるようになりましょう。
–versionオプションを使う
もし、手元にRubyを実行できるパソコンがあるのなら、Rubyのバージョンを表示してみましょう。Rubyに「-v」または「–version」オプションを付けて実行してください。今使えるRubyのバージョンが表示されます。
Rubyのバージョンを表示するオプション
ruby -v
ruby –version
Rubyのバージョンを表示した例
$ ruby --version ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]
最新のLinuxなのにRubyは最新ではない
もし先ほど紹介したオプションでRubyのバージョンをチェックしたら、バージョン2系の古いバージョンだった、という方がいるかもしれません。最新のOSに標準のRubyパッケージをインストールしたのに、なぜ、と思われるでしょう。
Linuxの標準でインストールされるRubyは、必ずしも最新ではありません。例えば2021年6月4日にリリースされたCentOS 8.4の標準でインストールされるRubyのバージョンは、2019年5月にリリースされた2.5.5です。
もしRubyの最新バージョンを使いたい場合は、公式サイトからソースコードをダウンロードして自分の環境に合わせてコンパイルするなど、別のバージョンを入手しなければなりません。
Rubyのバージョン管理ツールを活用する
Ruby on Railsを利用してWebシステムを開発する場合、開発環境と本番環境のRubyのバージョンを合わせる必要があります。そして多くのRubyプログラマーはRubyのバージョンを切り替えて使っています。
そのようなRubyプログラマーがバージョン切り替えに利用しているツールがrbenvコマンドです。rbenvコマンドを利用することで、複数のRubyをソースコードからコンパイルして利用できる環境を作成し、それらを切り替えて利用できます。
rbenvコマンドの使い方については、下記の記事も参考にしてください。
なおrbenvコマンドを使うには、gccなどRubyのソースコードをコンパイルするための開発環境が必要です。rbenvコマンドを利用する前に必要なパッケージをインストールしてください。
rbenv versionでバージョンをチェックする
rbenvコマンドを利用することで特定のバージョンRubyをインストールし、そのバージョンのRubyに切り替えることが可能です。
次からrbenvコマンドを利用してRubyのバージョンをチェックする方法と切り替える方法を紹介します。
そもそもrbenvとは
rbenvコマンドは、Ruby on Railsの開発などに使用できる複数のRubyのバージョンを管理し、プロジェクト毎にRubyのバージョン切り替えて使える環境を実現してくれるツールです。
実際にはrbenvコマンド向けに用意された複数のRubyのソースコードをダウンロードし、コンパイルして実行モジュールを用意します。そのためrbenvコマンドは、Rubyをコンパイルする機能と、Rubyの実行モジュールを切り替える機能を提供します。
また今使っているRubyのバージョンをチェックしたり、切り替えがシンプルなコマンドだけで実行できるのがメリットです。次からrbenvコマンドの使い方を紹介します。
使えるRubyの一覧を表示する
もしrbenvコマンドで複数のバージョンのRubyをインストールした場合、rbenvコマンドで利用できるRubyの一覧を表示できます。この場合、rbenvに「versions」を付けて実行してください。
利用できるRubyのバージョン一覧を表示するコマンド
rbenv versions
Rubyのバージョン一覧を表示した例
$ rbenv versions system 2.7.3 * 3.0.1 (set by /home/acount/.rbenv/version) $
一覧を表示した際、1文字目に「*」が付いているバージョンが、今選択されています。
Rubyのバージョンを切り替える
rbenvコマンドを利用してRubyのバージョンを切り替えるには、rbenvコマンドに「global」と利用したいRubyのバージョンを指定してください。このコマンドでバージョンの切り替えが可能です。
Rubyのバージョンを切り替えるコマンド
rbenv global Rubyのバージョン
Rubyのバージョンを切り替えた例
$ rbenv global 3.0.0
Rubyのバージョンをチェックする
先ほど紹介したrbenv globalコマンドでRubyのバージョンを切り替えたら、バージョンが切り替わっていることをチェックしてください。rbenvでRubyのバージョンをチェックするには、rbenvにversionを付けて実行します。
Rubyのバージョンをチェックするコマンド
rbenv version
Rubyのバージョンチェックの例
$ rbenv version 3.0.1 (set by /home/acount/.rbenv/version)
もしrbenvで切り替えできない場合
先ほどrbenvコマンドを使ってrubyのバージョンを変更する手順を紹介しましたが、この手順で切り替えられないケースがあります。
次からそのようなケースの対処法について紹介します。
標準のRubyが動作している
macOSには標準でRubyがインストールされており、rbenvコマンドで最新のRubyをインストールしたとしても、その標準のRubyが実行されているケースがあります。なお、この状態はLinuxでも発生します。
もし、rbenvコマンドでRubyのバージョンを切り替えたのに、実行しているRubyのバージョンが変わっていない場合は、実行しているRubyのパスをチェックしてください。
rbenvでインストールしたRubyは、下記のようなパスで実行されます。
/home/アカウント/.rbenv/shims/ruby
一方OSに標準でインストールされているRubyのパスは次のとおりです。
/usr/bin/ruby
whichコマンドで今動作しているRubyのパスをチェックしてください。
OS標準のRubyのパスをチェックした例
$ which ruby /usr/bin/ruby
rbenvの参照先をチェックする
rbenvコマンドを使ってRubyのバージョンを切り替えた場合、rbenvコマンドの環境が正常に動作していないと、Rubyのバージョンが正常に切り替わりません。もし、先ほど紹介したようにOS標準のRubyが動作している場合は、rbenvコマンドの設定をチェックしてください。
なお、rbenvコマンドの設定は次の2行です。ホームディレクトリの.bash_profileなどに記述します。
export PATH="~/.rbenv/shims:/usr/local/bin:$PATH" eval "$(rbenv init -)"
特に2行目の「eval “$(rbenv init -)”」が実行されているかをチェックしてください。
まとめ
これまで紹介したように、Ruby on Railsの開発などでRubyのバージョンが指定されている場合は、rbenvコマンドを使って必要なバージョンを設定して利用しましょう。なお今使っているRubyのバージョンは、rbenv versionコマンドでチェックできます。また、Rubyのバージョンはruby –versionでもチェック可能です。
なお、もしrbenvコマンドでRubyのバージョンと実行しているRubyのバージョンが違っていたら、rbenvの設定をチェックしてください。またrbenvコマンドを利用することでRubyの最新バージョンも利用できます。rbenvコマンドを活用し、開発に必要なバージョンのRubyを利用できるようになりしましょう。