Homebrewやnvmで既にインストールしたバージョンをmiseでも使いたい
nvmやpyenv、Homebrewで既にインストール済みのNode.jsやPythonがある状態でmiseを導入する場合、同じバージョンを二重にダウンロードし直すのは無駄である。mise syncを使うと、他のバージョンマネージャがインストール済みのバージョンをmise管理下にシンボリックリンクとして取り込める。
mise sync node –brewの基本
Homebrewでnode@23がインストール済みの状態で実行する。
$ mise sync node --brew
Synced node@23 from Homebrew
$ mise ls node
node 23 (symlink)
(symlink)と表示され、実体はHomebrewのインストール先を指すシンボリックリンクである。
$ ls -la ~/.local/share/mise/installs/node/23
installs/node/23 -> /opt/homebrew/opt/node@23
取り込んだバージョンはmise useやmise execなど、他のツールと同じように扱える。
$ mise x node@23 -- node --version
v23.10.0
nodeには--brewの他に--nodenv、--nvmもあり、それぞれNodenv、nvmのインストール済みバージョンを取り込める。
mise sync python –uvは双方向に同期される
pythonサブコマンドには--pyenvに加えて--uvがある。--uvは他のソースと違い、mise側とuv側の両方に同期する双方向の同期である。
uvだけでインストール済みのバージョンをmise側に取り込む場合、通常の同期と同じ向きになる。
$ uv python install 3.12
$ mise sync python --uv
Synced python@3.12.11 from uv to mise
$ mise ls python
python 3.12.11 (symlink)
逆に、mise側にだけ存在するバージョンがある場合は、uv側にシンボリックリンクとして書き込まれる。
$ mise install python@3.11.9
$ mise sync python --uv
Synced python@3.11.9 from mise to uv
$ uv python list --only-installed
cpython-3.11.9-macos-aarch64-none ~/.local/share/uv/python/cpython-3.11.9-macos-aarch64-none/bin/python3.11
uv runやuv python pinのように普段uvコマンド経由でPythonバージョンを指定している場合でも、mise側でインストールしたバージョンをそのまま使えるようになる。
rubyはHomebrewだけに対応している
rubyサブコマンドは--brewしか用意されておらず、rbenvからの取り込みには対応していない。
$ mise sync ruby --help
Usage: mise sync ruby <--brew>
nodeやpythonと同じ感覚でrbenv用のオプションを探しても見つからないので注意する。
\第一線のプログラマーの行動原理を学べる!/
