Windowsで異なるバージョンのRubyを使う方法(uru)

3 min read読了の目安(約2900字

※この記事は、Qiitaに投稿した記事を一部変更したものです。

https://qiita.com/drafts/bff9638117d61205a5ca

普段は最新のRubyを使っているけど、Ruby on Railsなど環境によっては古いバージョンを使い分けたいときに。

uruを導入する

uru の準備

  1. 使い分けたいバージョンのRubyをインストール
  2. uru をダウンロードページからDL
  3. DLされた uru-0.x.x-windows-x86.7z を解凍
  4. uru_rt.exeを適当なフォルダに移動
  • ここでは C:\Tools\uru に移動
  1. コマンドプロンプトで uru を使うため、移動した先へのパスを通す
  2. コマンドプロンプトで下記を実行
    uru_rt admin install
    
  3. 次が出力される
    ---> Installing uru into C:\Tools\uru
    
  4. 同じフォルダに uru.bat, uru.ps1 が生成されていることを確認

Rubyへのパスをuruに登録

  1. コマンドプロンプトで下記を実行(Ruby2.4の実行パスが C:\Ruby24-x64\bin のとき)
    uru admin add C:\Ruby24-x64\bin
    
  2. 次が出力される
    ---> Registered ruby at `C:\Ruby24-x64\bin` as `246p354`
    
  3. Ruby2.5も同様に登録
  4. 登録されたか確認するため、下記を実行
    uru ls
    
  5. 次が出力されればOK
    246p354     : ruby 2.4.6p354 (2019-04-01 revision 67394) [x64-mingw32]
    255p157     : ruby 2.5.5p157 (2019-03-15 revision 67260) [x64-mingw32]
    

uruで切り替えてみる

  1. 現在はパスを通してある Ruby2.5 が使える状態
    C:\Tools\uru> ruby -v
    ruby 2.5.5p157 (2019-03-15 revision 67260) [x64-mingw32]
    
  2. uru で Ruby2.4 に切り替える("246p354" は "uru ls" で出てきた文字列)
    uru 246p354
    
  3. 次が出力される
    ---> now using ruby 2.4.6-p354 tagged as `246p354`
    
  4. 以降はコマンドプロンプト実行中なら Ruby2.4 になる
    C:\Tools\uru> ruby -v
    ruby 2.4.6p354 (2019-04-01 revision 67394) [x64-mingw32]
    

バッチファイルで実行する場合

※uru自体がバッチファイルのため、"call" を先につける必要がある

call uru 246p354

rem Ruby2.4で実行する
ruby temp.rb

.ruby-version ファイルでバージョン指定する

  1. .ruby-version ファイルを作成
    • 普通にエクスプローラーで新規テキストファイルをリネームしようとすると「ファイル名を入力してください」と出てしまう
      これはテキストエディタで新規保存時に名前を指定すると回避できる
  2. .ruby-version ファイルには使いたいRubyバージョンのみを記載(Ruby2.4を使いたいとき)
    2.4
    
  3. "auto" コマンドを使うと .ruby-version に記載したバージョンに変更される
    uru auto
    
  4. 次が出力される
    ---> now using ruby 2.4.6-p354 tagged as `246p354`
    

登録から削除する

古いバージョンのRubyを消すときにでも

  1. 削除したいバージョンの番号を調べる
    uru ls
    
  2. 次が出力される
    245p335     : ruby 2.4.5p335 (2018-10-18 revision 65137) [x64-mingw32]
    253p105     : ruby 2.5.3p105 (2018-10-18 revision 65156) [x64-mingw32]
    
  3. 下記コマンドを実行(ここではRuby 2.4を削除)
    uru admin rm 245p335
    
  4. 下記が表示される(削除していい?と聞いている)ので y を入力 -> [Enter]
    OK to deregister `ruby 2.4.5p335 (2018-10-18 revision 65137) [x64-mingw32]`? [Yn]
    
  5. 登録が削除されたかチェック
    uru ls
    
  6. 次が出力される(ruby2.4が消えている)
    253p105     : ruby 2.5.3p105 (2018-10-18 revision 65156) [x64-mingw32]