rbenvとは
rbenvとは、複数のRubyのバージョンをOSの中で共存させて、必要に応じてRubyの環境を切り替えられるツールです。自分の環境にrbenvが入っていなかったら、git cloneでGitHubからインストールします。apt ではインストールできないようです。
公式サイト https://github.com/rbenv/rbenv
rbenvのバージョンを上げる
rbenvコマンド自体のバージョンが古いと、最新のRubyがインストールできない事があります。(正確にはruby-buildのバージョンが影響している)その場合は、rbenvコマンド自体のバージョンを上げないといけない事になります。
現状のrbenvのバージョンでインストール可能なRubyのバージョンの一覧が表示されます。一覧の中に、インストールしたいバージョンが含まれていなければ、rbenvコマンドのバージョンを上げる事になります。
rbenv install -l
rbenvのバージョンアップの前に、現状のrbenvのバージョンを確認しておきましょう。
rbenv -v
rbenvのバージョンを上げるには、先ず、rbenvが入っているディレクトリに移動します。自分の環境(Ubuntu)では、/usr/local/rbenvでした。
cd /usr/local/rbenv
git pull
確かに、バージョンが上った事を確認します。
rbenv -v
rbenvだけでなく、ruby-buildもバージョンアップしないといけない事になります。
cd /usr/local/rbenv/plugins/ruby-build
git pull
これで、最新のRubyのバージョンが表示される筈です。
rbenb install -l
最新のRubyのバージョンをインストールする
現状インストールされているRubyのバージョン一覧を表示します。*がついているバージョンが、現状、有効になっているRubyのバージョンという事になります。systemが表示されれば、OSにプレインストールされていたrubyのバージョンがsystemに該当します。
rbenv versions
systemが実際に何のバージョンであるかを調べたい場合は、適当なディレクトリに移動した後、これで確認できます。
rbenv local system
cat .ruby-version
.ruby-versionファイルは、確認のために、一時的に作成しただけなので、確認が終わったら削除しておいて下さい。
rbenv local --unset
.ruby-versionが本当に削除された事を確認しておく。一番したに表示されていなければOK。
ls -latr
今回は、2.3.0のバージョンのRubyをインストールします。(この間が多少長いので、しばし、休憩 )
rbenv install -v 2.3.0
インストールしたRubyが表示される事を確認します。
rbenv versions
グローバル環境で、Rubyのバージョンを変更する
蛇足ではあるが、グローバル環境のバージョンを確認する方法は4つあります。
cat /usr/local/rbenv/version
--- たぶん、使わないと思われる
rbenv versions
--- 他バージョンも表示してくれるので便利
rbenv version
--- グローバル環境1つだけを表示
ruby -v
--- ローカル環境を指定していない事が条件ではある
グローバル環境を2.3.0に変更します。バージョンをきっちりと入力しなくても、Tabキーで補完入力ができます。
rbenv global 2.3.0
グローバル環境が確かに変更された事を確認します。
rbenv versions
この時点で自作したRubyのプログラムを流しても、グロバール環境にインストールしたgemを使っている場合、最新バージョンの環境ではgemが未だインストールされていないため、エラーになります。なので、最新バージョンの環境で、グローバル環境に必要なgemを1個つづインストールする必要があります。
元の環境に戻したい場合は、元のバージョンを指定すれば戻ります。p247とかのパッチレベルまでしっかりと指定しないといけません。
rbenv global 2.0.0p247
旧バージョンでグローバル環境にインストールしていたgemの一覧を保存しておきます。
gem list > gem_list_2.0.0.txt
もう一度、グローバル環境を最新バージョンに変更します。
rbenv global 2.3.0
旧バージョンのgemのlistを基に、必要なgemをインストールします。バージョン指定が必要な場合は、指定します。
gem install gem名 -v 0.0.0
自作したRubyのプログラムを動かしてみて、動作に問題がなければ、旧バージョンのRubyは削除しておきます。インストールにはあれだけ長い時間がかかった割りには、削除は一瞬だったりする。
rbenv uninstall 2.0.0p247
旧バージョンのRubyが削除された事を確認します。
rbenv versions
Rubyの開発環境を最新にしてみよう(補足)
現在の開発環境のRubyのバージョンを確認する。
rbenv versions
* 2.5.1 (set by /home/vagrant/.rbenv/version)
現在のRubyの最新バージョンを確認する。現時点では、2.6.3が最新なので、このバージョンをインストールする事にする。
rbenv install -l
2.6.3のバージョンをインストールする。結構時間がかかります。
rbenv install -v 2.6.3
2.6.3がインストールされた事を確認する。
rbenv versions
* 2.5.1 (set by /home/vagrant/.rbenv/version)
2.6.3
グローバル環境を、2.5.1→2.6.3に変更します。
rbenv global 2.6.3
グローバル環境が2.6.3になった事を確認する。
rbenv versions
2.5.1
* 2.6.3 (set by /home/vagrant/.rbenv/version)
Rubyのバージョンを確認して、確かに変わった。
ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
C'est fini
補足
rbenvのインストール方法と、rbenvを使ったRubyのインストール方法については、TechPitに学習教材があります。