rbenvについて

rubyのバージョンを変更をしようとして、忘れていたので、 復習がてら備忘録も書く。

rbenvとは

rbenvはRubyのバージョンを管理するツールです。
rbenvとrbenv-buildのセットでRubyのインストールとバージョン切り替えを担ってくれます。

globalで設定していてもそれぞれのディレクトリごとに変更してくれる。
わざわざ自分で変更しなくても良い(楽!)。

.ruby-versionファイルがあるディレクトリ以下のディレクトリでは、 .ruby-version ファイルに記載されているバージョンが適用されます。

  • グローバルでは2.7.1に設定してある
~ % ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
 ~/example % ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19]


rbenvをインストール

  • Homebrewをアップデート。
~ % brew update


  • rbenvとruby-buildをインストール。
    (ruby-buildも一緒にインストールされるのでrbenvだけでok!)
~ % brew install rbenv 

ruby-build を入れると rbenv install コマンドが使えるようになります。


  • rbenvがインストールされたか確認
~ % rbenv --version
rbenv 1.1.2

または

~ % rbenv -v
rbenv 1.1.2


シェルにrbenvを設定する

このままだとデフォルトでrbenvが使えないので設定する
zshを使用しているので~/.zshrcに書き込んでいるが、それぞれのシェルに合わせて書き込む

~ % echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
~ % echo 'eval "$(rbenv init -)"' >> ~/.zshrc
  • export環境変数を定義するコマンド
  • $HOMEはログインユーザのホームディレクト
  • :$PATH

    追加するコマンド検索パスの優先順位を高くしたい
    コマンド検索パスには優先度があり、echo $PATHで出力された左から優先されるため、
    追加するコマンド検索パスの優先度を高くしたい場合、以下のように記述する。
    export PATH=追加したいコマンド検索パス:$PATH

 「eval」コマンドは、指定した文字列を評価後に連結して、現在のシェルに実行させます。主にシェルスクリプトや環境設定用のファイルで使用します

vim .zshrcで見てみると下のように書き込まれている。

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"


その後再起動または、以下を実行し設定を反映させる。

~ % source ~/.zshrc


rubyをインストールする

  • インストール可能なrubyを確認する(実行時により異なる)
~ % rbenv install --list

または

~ % rbenv install -l
1.8.5-p52
1.8.5-p113

~~~~~~~~~~~~~~~

2.6.6
2.7.0-dev
2.7.0-preview1
2.7.0-preview2
2.7.0-preview3
2.7.0-rc1
2.7.0-rc2
2.7.0
2.7.1
2.8.0-dev
jruby-1.5.6

~~~~~~~~~~~~~~

現在の安定版は 2.7.2です。

本家では2.7.2が安定版だがrbenvのlistにはない!
ので、2.7.1をインストール。

~ % rbenv install 2.7.1


  • インストールしたrubyのバージョン確認
    *は今使用中のバージョン
    (versionsで全て、versionで今使用中のバージョン)
~ % rbenv versions
* system (set by /Users/owner/.rbenv/version)
  2.7.1
~ % rbenv version
* system (set by /Users/owner/.rbenv/version)


バージョンの切り替え

切り替えには2パターンあります。

・ローカルな切り替え
・グローバル な切り替え


ローカルな切り替え

プロジェクト(ディレクトリ)ごとに使用するRubyのバージョンを切り替える方法です。
切り替えコマンドを実行することで、カレントディレクトリにRubyのバージョン情報の書かれた .ruby-versionファイルが作成されます。
.ruby-versionファイルがあるディレクトリ以下のディレクトリでは、 .ruby-version ファイルに記載されているバージョンが適用されます。
また、グローバルな切り替えよりも優先度が高いため、プロジェクト(ディレクトリ)ごとに .ruby-version ファイルに記載されているバージョンが適用され、Rubyのバージョンが切り替えられます。

~ % rbenv local 2.7.0
  • 確認
~ % ls -a
  • .ruby-version が作成されているはずです。内容も確認してみましょう。
~ %  less .ruby-version
2.7.0


グローバルな切り替え

パソコンのシステム全体で共通で使用するRubyのバージョンを切り替える方法です。
~/.rbenv/version のファイル内のバージョン情報を書き替えることでバージョンを切り替えています。
ただし、ローカルな切り替えで説明した .ruby-version ファイルがある場合は、 .ruby-version ファイルが優先されるようになっています。

~ % rbenv global 2.7.1
  • rubyバージョン確認
~ % ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]



インストールの仕方はGithubからも可能。

github.com

qiita.com

www.atmarkit.co.jp