.rbenv/version
.rbenv/version
ファイルには、現在使用しているruby versionが記述されており、
rbenv global x.x.x
コマンドなどでversionを変更すると、.rbenv/version
の内容も書き換えられる。
[ec2-user@al1-gemlist ~]$ ruby -v
ruby 2.5.7p206 (2019-10-01 revision 67816) [x86_64-linux]
[ec2-user@al1-gemlist ~]$ cat .rbenv/version
2.5.7
[ec2-user@al1-gemlist ~]$ rbenv global 2.5.8
[ec2-user@al1-gemlist ~]$ ruby -v
ruby 2.5.8p224 (2020-03-31 revision 67882) [x86_64-linux]
[ec2-user@al1-gemlist ~]$ cat .rbenv/version
2.5.8
.rbenv/version を編集するとどうなるか
それでは、逆に .rbenv/version
の方をviで編集するとどうなるか。
試しに、今現在.rbenv/version
の中身を2.5.8
から2.5.0
に変更してみる。
[ec2-user@al1-gemlist ~]$ sudo vi .rbenv/version
[ec2-user@al1-gemlist ~]$ cat .rbenv/version
2.5.0
[ec2-user@al1-gemlist ~]$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
rubyのversionがファイルの内容に従って変更されているのが分かる。
また、rbenv versions
コマンドで確認してみると、
[ec2-user@al1-gemlist ~]$ rbenv versions
system
* 2.5.0 (set by /home/ec2-user/.rbenv/version)
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5
2.5.6
2.5.7
2.5.8
2.6.2
こちらに関しても2.5.0になっている事が確認できる。
疑問点
しかし、ここで一つ疑問があります。
version確認コマンド上ではrubyのversionは2.5.0と表示されているのは分かったが、「内部的にも2.5.0に変更されているのであろうか」という事です。
確認方法として、opensslというgemのversionを確認します。
このgemは
rubyが2.5.8の場合2.1.2
rubyが2.5.0の場合2.1.0
となります。
(詳しくは、こちらを参照)
つまり、opensslのversionが2.1.0
であれば、内部的にもruby versionが2.5.0に変更されていると言えます。
結果
[ec2-user@al1-gemlist ~]$ gem list openssl
*** LOCAL GEMS ***
openssl (default: 2.1.0)
従って、内部的にも変更出来ていることが確認出来ました。