mise を使う人がちらほらと増えつつ、Rails guide でも mise を最初に勧めるという感じらしいので mise に乗り換えてみた。
個人的に ruby-build はメンテし続ける気持ちがあるものの、rbenv はたまたま程度でしかなかったのでそれほど大きい影響ではない。mise のインストール方法とかは省略して、何を mise で管理するか、というと以下の方針にした。
具体例だと Ruby とか JRuby のための JDK などは mise にするが、1passowrd とか ripgrep などはバージョンを切り替えたいことなどないので homebrew または cargo って感じ。
mise i ruby@ruby-dev
とか mise i mysql
などでバンバンインストールしてから homebrew からは uninstall/untap をして終わり。自分くらいしか必要ないと思うけど mise のインストールディレクトリに X.Y-dev
と 3.1 未満の latest stable バージョンの Ruby を全部インストールするには以下の二つの script を使うと良い。
3.3-dev
などを 3.3.0 から 3.3.7 まで全部 symlink 貼ってしまうので、Gemfile の書き方によっては動かなくなるかもしれない。ただ Ruby において tiny バージョンを固定する意味あんの?と思うので、そういう人は頑張ってください。
あとは GEM_HOME に放り込んでいる C 拡張のライブラリのうち libruby.so を参照しているやつは動かなくなったので全部消して rebuild して対応した。bigdecimal とかなんだけど、これあんま良くないよなあ。ここまできて rbenv は不要になったので .local/share/rbenv
を丸ごと消して終わり。いくつか手元でメンテしているスクリプトが rbenv を前提としたものだったので全部書き換えておいた。
あと、heroku cli も移行しようかなと mise で入れてみたけど結構放置されているようで v10 ではなく v9 をインストールしてどうしようもない、という感じだったので mise でも homebrew でも管理するのをやめて npm i -g heroku@10.1.0
で使うことにした。あと rust は rustup の方がいいのでは?とか。
なんとなく mise はjq と組み合わせたりするとなかなか面白く toolchain を活用できる気配がしてあれこれやってしまい、奥が深い症候群になりがちないいツールだな、という印象だった。しばらくはこれで暮らしてみる。
Ruby 3.4.2 は何時ごろのリリースにして、今後のメンテはどうしますかね、というのを成瀬さんと話していて、もう k0kubun 君にやってもらうか、という話になったので以下のように話をまとめておいた。
https://bugs.ruby-lang.org/issues/21136
Ruby のリリースマネージャマネージャをやっているのでは、という感じだが、今日の時点から Ruby 3.4 は k0kubun くん、3.3 は nagachika さん、3.2 と 3.1 は自分という形になる。引き続き、コツコツ頑張っていこう。