
Rubyのバージョンを管理するためにrbenvを導入するよ!
目次
1.Rubyのバージョン管理とは
Microsoft WindowsにはXPや7があるように、Rubyもバージョンがあります。
Microsoftであれば更新パッチが適応されてバージョンが上がっていきますが、RubyやPythonなどのプログラミング言語はユーザ自身で導入する必要があります。
流れとしては「①公式ページのダウンロード」「②ダウンロードしたファイルを適用」「③以前のバージョンを削除」の導入作業がありますが、実際に行うのは面倒です。
また、バージョンを上げたあとにRuby側にバグが見つかりバージョンを下げるとき、上記の①〜③を再度行う必要があるため手間がかかります。
そのため、バージョン別に構築することができ、違うバージョンに切り替え行うことができる「rbenv」があります。
今回は、ラズパイに「rbenv」を導入する手順を公開します。
2.rbenvの導入
rbenvを導入するラズパイは下記になります。
・Distributor ID: Raspbian
・Description: Raspbian GNU/Linux 9.13 (stretch)
・Release: 9.13
・Codename: stretch
2.1 rbenvのインストールとbashの追記
まずは大本のrbenvをインストール
$ sudo apt-get install rbenv
rbenvのインストールが完了したらbashに追加します。
bashとはサーバーを使用しているユーザーの環境変数が記載されているもので、サーバー起動時に読み込まれます。
$echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> .bashrc
$echo 'eval "$(rbenv init -)"' >> .bashrc
最後にrbenvが導入されたかを確認するために、バージョンを確認します。
$rbenv -v
rbenv 1.0.0
2.2.ruby-buildのインストール
rbenvはバージョンを管理してくれますが、rbenvの中でRubyの他バージョンの構築を「ruby-build」で行います。
そのためgit経由で「ruby-build」にインストールします。
$sudo apt-get install git
$git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/home/pi/.rbenv/plugins/ruby-build'...
remote: Enumerating objects: 11962, done.
remote: Counting objects: 100% (655/655), done.
remote: Compressing objects: 100% (263/263), done.
remote: Total 11962 (delta 417), reused 538 (delta 346), pack-reused 11307
Receiving objects: 100% (11962/11962), 2.52 MiB | 2.98 MiB/s, done.
Resolving deltas: 100% (7884/7884), done.
2.3バージョンのインストールと適用
最後にrbenvを使用してRubyのバージョンをインストールします。
まずは取得できるバージョンリストを確認します。
$rbenv install --list
2.6.9
2.7.5
3.0.3
3.1.0
jruby-9.3.2.0
mruby-3.0.0
rbx-5.0
truffleruby-21.3.0
truffleruby+graalvm-21.3.0
Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.
1/10現在では3.1.0が最新のため、3.1.0をダウンロードと構築します。
$rbenv install 3.1.0
$rbenv global 3.1.0
Installing ruby-3.1.0...
Installed ruby-3.1.0 to /home/pi/.rbenv/versions/3.1.0
※ダウンロードと構築が行われているため、時間がかかります。
2.4.選択したRubyバージョンの適用
最後に先程選択したバージョンを指定して、バージョンが変更されたかを確認します。
$source .bashrc
※2.1で設定したbashの反映を行ってます
$rbenv global 3.1.0
$rbenv rehash
$ruby -v
ruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [armv7l-linux-eabihf]