ruby-build の各バージョンの仕組みについて

備忘録。

Ruby の trunk に入った新機能を試す過程で ruby-build のスクリプトを調べたので、その概略についてのメモを残す。

ruby-build のコミット ca85eba に基づいた情報です。

各バージョンをインストールするスクリプト

rbenv 経由で ruby-build を使っている場合、 rbenv install --list でインストール可能なバージョンの一覧を出力できる。ruby-build の share/ruby-build/ 以下に各バージョンに対応するインストールスクリプトがある。

安定版のインストール

2.6.3 のインストールスクリプトは以下の通り。

https://github.com/rbenv/ruby-build/blob/ca85eba8c628c9c7b392f7e07162938f1dc59725/share/ruby-build/2.6.3

このスクリプトで使われている install_package は↓で定義されているヘルパー関数である。

https://github.com/rbenv/ruby-build/blob/ca85eba8c628c9c7b392f7e07162938f1dc59725/bin/ruby-build

install_package は引数で指定された tarball をダウンロード・ビルドする。

CRuby の trunk バージョンのインストール

この記事の時点では 2.7.0-dev が trunk に相当する。 ↓が対応するインストールスクリプトになる。

https://github.com/rbenv/ruby-build/blob/ca85eba8c628c9c7b392f7e07162938f1dc59725/share/ruby-build/2.7.0-dev

安定版の CRuby インストールスクリプトでは install_pacakge を使うのに対し、trunk は install_git を使っており、これは tarball をダウンロードする代わりに Githubruby/ruby から clone してビルドしてくれる。