はじめに
Ruby 3.0.0 Preview 1 がリリースされました。
https://www.ruby-lang.org/en/news/2020/09/25/ruby-3-0-0-preview1-released/
型システム(という呼び方でいいのかしらん?)とか,並行プログラミングをサポートする Ractor だとか,超目玉機能が試せます。
macOS だと Homebrew で rbenv と ruby-build の二つのパッケージを入れて Ruby をインストールしている人が多いと思います。
本記事の読者はそういう方を念頭に置いています。
インストール その(1)
今回,3.0.0 Preview 1 がリリースされて速攻1で ruby-build が更新されたので,
brew update
brew upgrade ruby-build
rbenv install 3.0.0-preview1
とすれば OK。
インストール その(2)
ところが,Homebrew の ruby-build は,対応する Ruby がリリースされてすぐに更新されるとは限りません。
今回はたいへんありがたいタイミングでしたが,3.0.0-dev の場合はリリースされてもなっかなか入らず,結局 3.0.0-preview1 と同時に入ったのでした。
こういう場合,Homebrew の ruby-build パッケージを使わない方法があると Slack の ruby-jp で教えていただきました。
試してみたので,その方法を書きます。
まず,現状では Homebrew で rbenv と ruby-build が入っているので,ruby-build のほうをアンインストールします。
しかし,単純に
brew uninstall ruby-build
とやると,
Error: Refusing to uninstall /usr/local/Cellar/ruby-build/20200926
because it is required by rbenv, which is currently installed.
You can override this and force removal with:
brew uninstall --ignore-dependencies ruby-build
とエラーが出て実行できませんでした。
(なお,消そうとしたヤツが「20200926」と最新になっているのは,brew upgrade
したあとでこれを行ったからです)
そこで,上記のメッセージに書かれているとおり,
brew uninstall --ignore-dependencies ruby-build
とやってアンインストールしました。
次に,ruby-build を GitHub のリポジトリーからクローンします。
ruby-build は(単体でも使えるそうですが)rbenv と組み合わせる場合は,rbenv のプラグインとして働くよう,プラグイン置き場に置く必要があります。
典型的には,それはホームディレクトリーの .rbenv/plugins
という場所です(Homebrew で ruby-build を入れた場合はこの場所にはありません)。
つまり,~/.rbenv/plugins
ですね。
しかし,典型的でないケースもありうるので,確実に場所を把握したいところ。
rbenv root
で plugins
ディレクトリーの親ディレクトリーが表示されるので,以下の手順ではこれを利用します。
まず,plugins
ディレクトリーは存在するとは限らないので,
mkdir -p "$(rbenv root)"/plugins
とやってディレクトリーを作ります。既に存在していたとしても問題は生じません。
そして,
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
とやると,しかるべき場所に最新の ruby-build がクローンされます。
この状態で
rbenv install 3.0.0-preview1
とすると,3.0.0 Preview1 がインストールされます!
説明が長かったけど,やるべきことは単純ですね。四箇所コピペするだけでした。
将来,新しい Ruby がリリースされたら
git -C "$(rbenv root)"/plugins/ruby-build pull
で ruby-build を最新版にすればそれがインストールできます。
このへんのことは ruby-build の README にちゃんと書いてあります。
コピペ用まとめ
Homebrew で rbenv と ruby-build がインストールされている環境で,Homebrew 版の ruby-build をアンインストールしてから Ruby 3.0.0-preview1 をインストールするまでの全手順を,コピペしやすいよう,ここにまとめました。
Homebrew 版の ruby-build をアンインストール:
brew uninstall --ignore-dependencies ruby-build
GitHub から ruby-build をクローン:
mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
Ruby 3.0.0-preview をインストール:
rbenv install 3.0.0-preview1
クローンした ruby-build を更新:
git -C "$(rbenv root)"/plugins/ruby-build pull
さいごに
Ruby の新しい時代が始まる。さあ,扉を開こう!
え? 「うちは Windows」だって?
-
タイムラグ 1 日くらい? ↩