Rubyを最新ソースからインストールする (rbebv)

rbenvruby-buildプラグインを使用してRubyをインストールする方法を説明します。
ここではrootではなく一般ユーザとしてインストールします。ただし、パッケージのインストールにはroot権限が必要となります。

Rubyのビルドに必要なパッケージをインストールする

Rubyのビルド(コンパイル)に必要なパッケージをdnfでインストールします。

$ sudo dnf install tar git gcc make zlib-devel openssl-devel readline-devel libffi-devel libyaml-devel

rbenvをインストールする

rbenvとruby-buildプラグインをgithubのリポジトリからgit cloneします。

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

rbenvコマンドが利用できるようにrbenv initサブコマンドを実行します。ここではBashを利用しているので、~/.bash_profileに設定が追加されました。

$ ~/.rbenv/bin/rbenv init
writing ~/.bash_profile: now configured for rbenv.

「ログインしなおす」などによってBashの設定を反映させます。

rbenvコマンドが使用できるか確認しつつ、インストールできるRubyのバージョンを確認します。

$ rbenv install -l
3.1.6
3.2.5
3.3.4
jruby-9.4.8.0
mruby-3.3.0
picoruby-3.0.0
truffleruby-24.0.2
truffleruby+graalvm-24.0.2

Only latest stable releases for each Ruby implementation are shown.
Use `rbenv install --list-all' to show all local versions.

インストールできるバージョンの中で最新の安定バージョンが表示されています。

ちなみに、インストールできる全てのバージョンを表示したい場合は、-Lオプションを指定します。

$ rbenv install  -L

ここでは、Ruby 3.3.4をインストールします。

Rubyをビルドしてインストールする

rbenv installコマンドにより、Rubyのソースのダウンロード、ビルド、インストールを順次実行します。(Rubyのビルドには時間がかかります。ビルド時間は実行環境によって異なります。)

$ rbenv install 3.3.4
==> Downloading ruby-3.3.4.tar.gz...
-> curl -q -fL -o ruby-3.3.4.tar.gz https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.4.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21.0M 100 21.0M 0 0 40.5M 0 --:--:-- --:--:-- --:--:-- 40.4M
==> Installing ruby-3.3.4...
-> ./configure "--prefix=$HOME/.rbenv/versions/3.3.4" --enable-shared --with-ext=openssl,psych,+
-> make -j 2
-> make install
==> Installed ruby-3.3.4 to /home/user/.rbenv/versions/3.3.4

NOTE: to activate this Ruby version as the new default, run: rbenv global 3.3.4

Rubyのインストールが完了したら、rbenvで利用できるRubyのバージョンを確認してみます。

$ rbenv versions
* system
3.3.4

これでRuby 3.3.4が利用できるようになりました。

現状では、パッケージでインストールしたRuby (system)がグローバルで利用するバージョンとして指定されています。

グローバルで使用するRubyのバージョンを設定する

rbenv globalコマンドで3.3.4をグローバルで使用するバージョンとして設定します。

$ rbenv global 3.3.4

Rubyのバージョンをrubyコマンドを実行して確認します。

$ ruby -v
ruby 3.3.4 (2024-07-09 revision be1089c8ec) [x86_64-linux]

gemコマンドを実行する

gemコマンドでpryをインストールしてみます。

$ gem install pry

ここで示した方法でrbenvをインストールした場合は、~/.rbenv/以下にRubyやgemがインストールされるためgemコマンド実行の際にはroot権限やsudoコマンドが必要ありません。

which?

ではこのruby、gemはどこにあるのでしょうか? whichコマンドで調べてみます。

$ which ruby
~/.rbenv/shims/ruby
$ which gem
~/.rbenv/shims/gem

~/.rbenv/shims/以下のrubyとgemが実行されていることが分かります。これらのファイルはbashスクリプトです。実際にrbenvの設定によって実行される実体はrbenv whichによって確認出来ます。

$ rbenv which ruby
/home/user/.rbenv/versions/3.3.4/bin/ruby
$ rbenv which gem
/home/user/.rbenv/versions/3.3.4/bin/gem

複数のRubyのバージョンを利用できるrbenvの仕組みがなんとなく垣間見えたのではないでしょうか。

rbenv installで指定できるRubyバージョンを更新する

最新のRubyがリリースされたら、~/.rbenv/plugins/ruby-build/git pullを実行することで、Rubyの新しいバージョンを試すことができます。

$ cd ~/.rbenv/plugins/ruby-build/
$ git pull
$ rbenv install -l
$ rbenv install 3.x.x
$ rbenv global 3.x.x

まとめ

これでrbenvによるRuby実行環境の構築が完了しました。