きっかけ
mise 最高なのでみんな入れといて(mise.toml をコミットして許される時代になってほしい)https://t.co/Eth5CZMkcL
— mizchi (@mizchi) June 29, 2025
上のポストを見て「mise、どっかで聞いたことあるな...🤔」と思ったら、何のことはない、Railsガイドの訳文をRails 8向けに更新したときにmiseを使ったRubyインストール方法が指示されていたのでした↓。
参考: Ruby on Rails インストールガイド - Railsガイド
Railsがどういう経緯でmiseをガイドで使うようになったのかよくわからなかったのですが、以下の速報記事でどうやらDHHがmiseを気に入っていることがわかりました。
なお、Rubyの公式ドキュメントにも、Rubyインストール用のマネージャとしてmiseがmise-en-place
という名前で掲載されています。
参考: Installing Ruby
miseとは
- 公式ページ: Home | mise-en-place
- デモ: Demo | mise-en-place
Rustで書かれたツールです。
コマンド名はmise
ですが、mise-en-placeが正式名のようです。どっちで呼んだらいいのやら。
作者のJeff Dickeyさんのインタビューを見つけました↓。
miseそのものは、フランス語としての発音は「ミーズ」なんだそうです。とわかってても、私はついつい英語風に「マイズ」と発音してしまいがち😅。まあ上のYouTube動画の自動字幕でもmiseを"me is"と解釈しているぐらいなので無理もなさそう。
豆知識
mise en place〈フランス語〉(料理の)下準備、下ごしらえ
mise-en-placeは「ミザンプラス」と読むようです。フランス語なのですが、英語圏の料理人なら必ずといっていいほど知っている用語らしく、ハイフンを付けなくても通じるレベルだとか。日本で豆板醤(トウバンジャン)が中国語読みで通じるみたいなものかも。
フランス語のmiseは単体ではほとんど使われない助詞的な品詞なんだそうです。
似たようなフランス語由来の英語でmise-en-scène(ミザンセーヌ:演劇用語の「演出」に相当し、直訳は「場面の配置」)というのもあります。これもフランス語でありながら、やはり英語圏の演劇や映画方面で普通に通じるそうです。
もっとニッチなものとして、漫画のコマ割りをわざわざmise-en-page(ミザンパージュ、直訳だと「ページの配置」?)と呼んでいるのを見かけたことがあります。
フランス語何もわからない。
miseってどんなツール?
上のポスト先の記事にもあるように、miseは以下を行えるツールであるそうです。
- タスクランナー(
make
もしくはrake
的) - パッケージ管理とツールバージョン管理(ちょっと試した)
- 環境変数管理(
direnv
的、まだ試してない)
上のポストでmise記事を読み、とりあえず私はmake
コマンドとMakefileの進化版のような感じで、プロジェクト固有の各種コマンドを、プロジェクトのrootディレクトリのmise.tomlファイルに仕込んで、タスクランナーとして使いました。
mise.tomlファイルに仕込んだコマンドは、mise run コマンド名
で即座にコマンド実行できますし、mise run
だけ実行すれば、その時点で実行可能なコマンドリストを表示して、矢印キーで選んで実行、といったことができます。
「何これ、make
よりもrake
よりも全然いいじゃない!😂」という気持ちでした。
今ならmise.toml設定ファイルはClaude Cldeに書かせればいいので楽でいいですね😋。
もちろんDockerコンテナ内やdevcontainer内でも使えます。
依存関係の少ない軽めのプロジェクトであれば、Dockerコンテナ化するよりmise run install-tool
とかを整備しておく方が楽かもしれません。
特にmise up
でツールやNodeパッケージなどを一括アップデートできるのは便利ですね。
CLIのアップデートは毎日やるものなので、
mise up
だけで全部を一括でアップデートできるmiseが便利です。npmパッケージの場合は特に。
mise install npm:@openai/codex
mise use -g npm:@openai/codexhttps://t.co/mR8y51vsFB pic.twitter.com/VJ2IgZlY2M— Kenn Ejima (@kenn) September 16, 2025
miseはMakefile代わりだけじゃない
しかし、RailsガイドでRubyをインストールするのにも使われていることからもわかるように、miseはパッケージ管理にも使えるようです。しかもRubyに限らず、PythonやGoのバージョン管理や、Nodeなど多くのパッケージを管理できるようです。
私の場合、今使っているのはanyenv経由でのrbenvやらpyenvやらですが、これらをmiseのパッケージ管理下に移行するのがよいのか...?という気持ちに一瞬なりましたが、以下の記事の冒頭に追記したように、macOS 15 SequoiaではRuby 3.0.6をビルドできなくなっています(それ以前のRubyバージョンもSequoiaではビルド不可能になったはず)。
rbenvでこれまでビルドしていたRubyバージョンをmiseに移行しようがないので、rbenvは当面使い続けることにしようと思います。
$ rbenv versions
system
2.4.10
2.5.9
2.6.8
2.7.8
3.0.6
3.1.4
3.2.6
3.2.7
3.2.9
3.3.6
3.3.7
3.3.8
3.3.9
3.4.0
3.4-dev
3.4.1
3.4.2
3.4.3
3.4.4
* 3.4.5 (set by /Users/hachi8833/deve/rails/enno/enno_docker/.ruby-version)
3.5.0-preview1
ruby-dev
Rubyバージョンを追加して利用可能にする
miseをインストール後、プロジェクトでmise use ruby@バージョン名
を実行すれば、そのプロジェクト内でそのバージョンのRubyが使われるようになります。rbenv用に設定したRUBY_CONFIGURE_OPTS
やLD_PRELOAD
といった環境変数もそのまま使われました。
内部的にはrbenvと同様にruby-buildを参照しているそうです。
$ mise use ruby@3.4.5
mise ruby@3.4.5 ⠁ 0s
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 22.1M 100 22.1M 0 0 7206k 0 0:00:03 0:00:03 --:--:-- 7208k
mise ruby@3.4.5 ✓ installed mise ~/deve/rails/enno/enno_jp/mise.toml tools: ruby@3.4.5
プロジェクトにmise.tomlがなければ作ってくれます。rbenv install バージョン名
より表示がシンプルな印象です。
which ruby
で
確認すると、~/.local/share/mise/installs/ruby/3.4.5/bin/ruby
にインストールされていました。
ruby -v
ruby 3.4.5 (2025-07-16 revision 20cda200d3) +YJIT +PRISM [arm64-darwin24]
$ which ruby
/Users/hachi8833/.local/share/mise/installs/ruby/3.4.5/bin/ruby
ただし、.ruby-versionファイルとの同期までは取ってくれないので、.ruby-versionの内容は自分で更新する必要があります。
Claudeはlegacy_version_file
を使うと.ruby-versionとも共存できると教えてくれましたが、調べてみると廃止が決まっていたので、以下のようにidiomatic_version_file_enable_tools
に[]
を指定することで.ruby-versionを参照できるようです。
# .config/mise/config.toml
[settings]
idiomatic_version_file_enable_tools = []
いずれにしろ、miseでRubyをインストールするのであれば、miseのRubyパスとrbenvのRubyパスのどちらが優先されているかは把握しておく必要があります。
参考: mise で deprecated [idiomatic_version_file_enable_tools]:
となったら #mise - Qiita
なお、miseでインストールしたRubyをアンインストールするにはmise uninstall ruby@3.4.5
のようにします。
まとめ
miseは、ひとまずタスクランナーとして即便利に使えると感じられました。
バージョン管理や環境変数管理は、既存の環境の都合もあるので、手に馴染んでからでもよいかなと思っています。
追記
miseが入っていないRailsプロジェクトをgh
で取ってきたら、なぜか既に入っているRuby 3.4.5をインストールし始めました 🫠
これを止めるには、以下のいずれかを行います。
~/.config/mise/config.toml
に以下を書く
[settings.status]
missing_tools = "never"
- 以下を実行する
# 警告を完全に無効化
mise settings set status.missing_tools never
# または特定の条件でのみ表示
mise settings set status.missing_tools if_other_versions_installed