rbenvイラストにして理解しました。~rbenvとRubyとRails~
2018/11/072 分で読める記事 — In プログラム

はじめに


同居人に「眠たいなら寝なよ」と言われるも
頭で船を漕ぎながら「まだ眠くないze」と抵抗を続けている夜ふかしが得意系エンジニアのギノキンです。(Red Bullは友達)

rbenvを体系的に理解することが出来たので記載していきます。

まず、rbenvとは?


まず簡単に結論ですが、、Rubyのバージョンを管理してくれるものです。

例えば、
「僕のPC(上のrbenv)で管理しているRubyのバージョンを教えて!」
と命令を出すコマンドは、下記の様に入力します。

$ rbenv versions

そうすると、下記の様なRubyのバージョンを表した出力が出てきます。
=>出力
* system (set by /Users/ginokinh/.rbenv/version)
  2.5.0
  2.5.3

ここの system とは元々macに入っているRubyのバージョン(確か2.3.7だった)の事で、
2.5.0 , 2.5.3 は自身でインストールしたRubyのバージョンが出てきます。(出力は人それぞれです。)

また、下記の違いに気をつけて下さい。

$ rbenv versions
==>現在のrbenvで使用できる(管理している)Rubyのバージョンを教えてくれるコマンド。
=>(出力だと下記)
  system
  2.5.0
  2.5.3
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

$ rbenv -v
==>現在使用しているrbenvのバージョンを教えてくれるコマンド。
=>(出力だと下記)
  rbenv 1.1.1


rbenvはどの様に管理しているの?


ざっと図を書いてみました!上記の出力を例に書いてます。

IMG_7907.jpg

上記の様にrbenvはそれぞれのRubyのバージョンを管理しています。

開発するものによってこのRubyのバージョンを変えていくのですが、
ここの中には gem , railsのバージョン も入ってくるとイメージしづらくなります。

そこで図に書きました。下記参照。

IMG_7909.JPG

図に書いた通り、管理しているRubyのバージョンごとに gem , railsのバージョン が違います。
これは自身でそれぞれinstallをしているので違っているのです。

最後に


そこで、本日学んだことを記事にしました。
誤った表現やご助言等のありましたらよろしくお願い致します。

誰かの糧になれたら幸いです。