LinuxやmacOSでは、特に何かアプリをインストールしなくてもRubyが使えます。とはいえ、そのRubyは最新でしょうか。もしバージョンが古いと最新のRuby on Railsが使えないこともあります。今使えるRubyのバージョンをチェックして、もし古い場合は最新バージョンを導入しましょう。
今回はRubyのバージョンのチェック方法とバージョンの切り替え方法について紹介します。
そのRubyは最新?
パソコンやスマートフォンなど、今使われている多くの情報機器は、インターネットに接続していると常に最新に保つ機能が働いています。しかしOSが最新だからと言って、そこで動作するコマンドが最新とは限りません。
LinuxやmacOSなどのOSに付属しているRubyは、そのOSの最初のバージョンがリリースされた時点の古いバージョンが使われていたりします。まずはRubyのバージョンを確認してみましょう。
rubyコマンドのバージョン確認方法
Rubyのバージョンを確認するなら、Rubyが使えるOSのターミナルまたはコマンドプロンプトから、-vオプションまたは–versionオプションを付けて実行してください。これで今使っているRubyのバージョンが表示されます。
CentOS 8.4でrubyのバージョンを表示する例
$ ruby -v ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux] $ ruby --version ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux]
なお、今入手できるRubyの最新バージョンを確認したい場合は、下記のRubyダウンロードサイトを参照してください。
OSは最新なのにRubyは最新でない?
先ほどCentOSによるRubyのバージョンの確認例とRubyの最新バージョンを確認できるサイトを紹介しましたが、最新のCentOSだからと言って、それで使えるRubyは最新ではありません。このようなケースは、他のLinuxやmacOSなどでもよくあることです。
OSに付属するコマンドは、それが正しく動作するか時間をかけてチェックされます。そしてOSに新しい機能が追加されたとしても、正しく動作する古いバージョンのコマンドを利用しています。
つまりOSに付属しているRubyコマンドは、OSをリリースした会社や組織が責任を持って安定して動作するバージョンが使われます。そして、そのOSの最初のバージョンがリリースされる前に時間をかけてチェックされています。OSの最初のバージョンがリリースされた時点で、既に古いバージョンのRubyがインストールされています。
そのためOSが最新だとしても、必ずしもインストールされているRubyは、最新バージョンではありません。
最新のRubyを使うには
もしOSに付属しているバージョンのRubyではなく、最新バージョンのRubyを使いたい場合は、まずRubyの公式サイトのダウンロードページをチェックしてください。ダウンロードページには、今使えるRubyの最新バージョンとそのインストール方法が掲載されています。
なお、Rubyの最新版には、複数の系列があります。Rubyの新しい系列では、それまで使えていた機能を変更することがあります。その場合、古いバージョン用に作られたライブラリによっては正しく動作しないかもしれません。そのため今も使われている古い系列もメンテナンスされています。
もしRuby on Railsを利用する場合は、そのバージョンで動作するRubyのバージョンを確認してください。自分が必要としているRubyのバージョンを確認し、そのバージョンに合わせた系列のRubyの最新版を利用しましょう。
Rubyのバージョンを変更する
Rubyのバージョンを確認し、もっと新しいバージョンが必要だと解ったら、Rubyのパッケージ管理ツールを利用して最新バージョンに切り替えてください。このようなRubyのバージョン管理ツールとしてよく利用されているのがrbenvです。
次からrbenvを使ってRubyのバージョンを変更する方法について紹介します。
rbenvコマンドとは
rbenvコマンドは、GitHubで公開されているオープンソースのパッケージ管理ツールです。
GitHub – rbenv/rbenv: Manage your app’s Ruby environment
もしRubyの最新版を使おうと持ったら、更新サイトからRubyのソースコードをダウンロードし、自分の環境に合わせて作成します。しかし、誰でもソースコードから作成できる訳ではありません。そこで簡単なコマンドだけでRubyのソースコードをダウンロードし、Rubyコマンドを作成して使える状態にしてくれます。
しかもrbenvを利用すれば、Rubyの複数のバージョンも導入できます。そして、利用できるバージョンを確認し、その中からバージョンを切り替えて使うことも可能です。
なおrbenvを利用するには、Rubyのソースコードから作成するための環境が必要です。rbenvの公式サイトなどを参考に、使用する開発環境のOSに合わせて必要なパッケージを導入してから利用してください。
rbenvでRubyを使えるようにする
rbenvコマンドでRubyを切り替えるには、まずGitHubにあるRubyのソースコードのバージョンを表示し、そこからバージョンを選んで設定します。どちらもrbenvに続いてinstallコマンドを使いますが、GitHubにあるバージョンを表示する場合は「-l」を、また、インストールする場合はそのバージョンを指定します。
$ rbenv install -l 2.6.8 2.7.4 3.0.2 jruby-9.2.19.0 mruby-3.0.0 rbx-5.0 truffleruby-21.2.0.1 truffleruby+graalvm-21.2.0 Only latest stable releases for each Ruby implementation are shown. Use 'rbenv install --list-all / -L' to show all local versions. $ rbenv install 3.0.2
rbenvでバージョンを確認する
rbenvコマンドは、複数のバージョンのRubyを切り替えて利用することも可能です。次に今使っているRubyのバージョンを管理するコマンドと、バージョンを切り替えるコマンドは次の通りです。
切り替え可能なバージョン確認コマンドの実行例
$ rbenv versions system 2.7.3 * 3.0.1 (set by /home/user/.rbenv/version) 3.0.2
rbenvのバージョンを切り替えるコマンド
$ rbenv global 3.0.2
rbenvでバージョンを確認する
rbenvを導入することで複数のRubyのバージョンを切り替えて利用できます。そして、今使っているRubyのバージョンをrbenvのコマンドで確認することも可能です。
次からrbenvでRubyのバージョンを確認する方法を紹介します。
rbenvのRubyのバージョン確認コマンド
rbenvの機能を利用するには、rbenvに続けてコマンドを指定して実行します。そしてRubyのバージョンを確認するためのコマンドがversionです。
$ rbenv version 3.0.1 (set by /home/user/.rbenv/version)
なお、先ほど使用するRubyのバージョンを指定する際に用いたglobalコマンドも、バージョンを指定せずに実行すると今設定されているバージョンを表示します。
$ rbenv global 3.0.1
.rbenv/vrsionを編集する
先ほどrbenv globalコマンドで利用するバージョンを切り替える方法を紹介しましたが、rbenvの設定ファイルを書き換えることも可能です。rbenvを設定するとアカウントのホームディレクトリに.rbenvが作られ、その下にversionというファイルができています。
このversionに今設定されているRubyのバージョンが記載されているので、このファイルを書き換えてください。
$ ruby -v ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux] $ cat .rbenv/version 3.0.1 $ echo "3.0.2" > .rbenv/version $ ruby -v ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]
.rbenv/versionファイルを書き換えたら、指定したバージョンのrubyコマンドが実行できることを確認してください。
まとめ
最初に紹介したように最新のLinuxやmacOSを利用されているからといって、Rubyの最新バージョンが使える訳ではありません。まずは今使っているRubyのバージョンをチェックしてみてください。
もし最新版のRubyを使うなら、Ruby用のパッケージ管理ツールを利用して、最新バージョンのRubyを導入しましょう。なおそのようなツールを利用すると、複数のバージョンを切り替えて使えます。そのようなケースではツールを活用してRubyのバージョンをチェックし、使いたいバージョンに切り替えてください。