箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

複数バージョンのインストール【Ruby】

f:id:y_hakoiri:20191102121704j:plain

個人開発でRubyを使うときに、仕事で使っているバージョンより新しいものを使いたいな、と思って別バージョンのインストール方法を調べてやってみたので、まとめておきます。

rbenvのインストール

Rubyのバージョン管理にはrbenvが必要になるのでインストールしておきます。

rbenvのインストール方法はgitから直接クローンしてくる方法か、Homebrewというパッケージ管理ツールを使用してインストールしてくる方法がありますが、最新バージョンのrbenvを使いたい場合はgitからクローンしてきた方が良いみたいです。

ただgitからクローンした場合は、その後使用するruby-buildを別途インストールする必要があるらしい。

さすがHomebrew、パッケージ管理ツールというだけあって必要なものを一気にインストールしてくれるのは良いですね。(個人的にはHomebrewでインストールする方が手軽かなと思います)

インストールできたら、(もしくはインストールしてあるか確認したい場合)以下のコマンドで正しくインストールできていることを確認します。

$ rbenv --version

こんな感じで、実行結果にrbenvのバージョンが返ってきたら成功している。

rbenv 1.1.2

複数バージョンのrubyインストール

rbenvがインストールできたら、やっと複数のバージョンのRubyをインストールできる準備が整いました。

まずは「rbenvを使ってインストールできるrubyのバージョン一覧」を確認します。

$ rbenv install -l

ここの-lはリストかな?

このコマンドを打つと、インストール可能なRubyのバージョンがズラ〜っと並んできます。

Available versions:
  1.8.5-p52
  1.8.5-p113
  1.8.5-p114
  1.8.5-p115
  1.8.5-p231
  1.8.6
 .
 .
 .

基本的には私たちが使いたいな〜と思うバージョンはサポートされてるはずだけど、リリースされたばかりの新しいバージョンは入ってなかったりとか、そもそもrbenv自体のバージョンが古いとインストールできるrubyも古い、みたいなことはあるかもしれないです。

指定のバージョンのRubyをインストール
$ rbenv install 2.5.0

インストールできたかどうか確認

$ rbenv versions

実行結果は以下の通り。

  system
* 2.4.3 (set by /Users/hako/.ruby-version)
  2.5.0

2.4.3はもともと入っていたバージョンで、ちゃんとその下に今回新しくインストールしたかった2.5.0が追加されています。成功。

インストールしたバージョンを使えるようにする

このままではまだ使えません。

先ほどの実行結果を見ると

  system
* 2.4.3 (set by /Users/hako/.ruby-version)
  2.5.0

ここで*印がついているバージョンが、現在のディレクトリで使用が設定されているバージョンです。

Rubyのバージョン切り替え
$ rbenv global 2.5.0

ここでglobalとすると、そのPC内の全てのディレクトリで使えるRubyのバージョンが2.5.0に切り替わります。

私の場合、仕事で使うディレクトリでは今までのバージョンで、個人開発で使うディレクトリは別管理のうえRubyのバージョンも違うものを使いたいので、

$ cd personal_environment
$ rbenv local 2.5.0

「local」とすることで、現在のディレクトリでのみ指定ができます。(指定する前にディレクトリ移動するのを忘れずに)

globalで指定しておいて、ディレクトリを移動する都度バージョンを切り替えるなんてことをすると絶対どこかで事故が起こると思うので、そういうことはできるだけ起きないよう予防しておくのも大事かなと思います。

これで準備完了!!

まとめ

  • Rubyの複数バージョンをインストールしたり、バージョンを切り替えたりするためにはrbenvが必要
  • rbenv自体にもバージョンがある。rbenvのインストールはHomebrewかgitから
  • 使用するRubyのバージョン指定はglobalとlocalで指定する方法がある

参考

Ruby を使うなら「rbenv」で複数バージョンを切り替えられるようにしておこう - HAM MEDIA MEMO