🦔

miseでインストールしたrubyでgem installするとrtxが見つからないというエラーが出る

に公開

何が起こったか

miseはrtxの後継として開発されている、rubyやpython、あるいはghqみたいなツールのバージョンを管理できるツールである。serenaでsolargraphが必要になったのでインストールしようとしたところ下記のようなラーが出た。

$  gem install solargraph
** 中略 **
ERROR:  While executing gem ... (Errno::ENOENT)
    No such file or directory - rtx
        /Users/USERNAME/.local/share/mise/plugins/ruby/rubygems-plugin/rubygems_plugin.rb:15:in 'Kernel#`'
** 後略 **
'<main>'

rtxが見つからない、というのでてっきりmiseのプラグインが古いのだろうかと思った。また、miseのpluginsディレクトリ以下のコードでエラーが出ていたので、miseの問題だろうと思って色々いじくり、mise関連のファイルを1度全部削除してみたり、rtxをmiseのエイリアスにしてみたりなどしたが解決しない。そもそもruby-buildとmiseのプラグインの関係性もよくわかっていなかった(し、今も雰囲気で使っている)。

解決方法

てっきりmiseの上で起こっている何かが原因だと思っていたのだが、ruby-buildをアップデートしたら解決した。正確にはmise関連の色々削除してしまったあとだったので、再インストールして最新を入れたことで解決したということになりそうだ。

$ brew upgrade ruby-build

多分miseのバージョンとruby-buildのバージョンか何かが変な噛み合い方をしたときこうなるらしく、ググっても何も出てこないしGPT-5に聞いても解決策は提示されなかったので、メモしておく。

今にして思うと、mise関連のファイルを全部消したあと mise install ruby@latest を実行するとruby-buildが見つからない、というようになったので、実際にはmise関連のファイルをすべて消したのが良かっただけかもしれない。まぁ、ruby-buildの最新を入れて初めて解消したことは間違いないのだが。

rm -f ~/.local/bin/mise
rm -rf ~/.local/share/mise
rm -rf ~/.config/mise
rm -rf ~/.cache/mise

Discussion