mise.tomlからツールの記述だけを削除したい

【mise】mise uninstallでインストール済みツールを削除する は、ディスク上のツールの実体を削除するコマンドである。それに対してmise unuseは、mise.tomlからツールの記述を削除するコマンドであり、他の設定ファイルから参照されなくなったバージョンは、あわせてディスクからも削除される。

mise unuseの基本

jq = "1.7.1"と書かれたmise.tomlがあるディレクトリで実行する。

$ mise unuse jq
mise removed: jq from /path/to/mise.toml

mise.tomlからjqの行が削除される。

[tools]

-yを付けないとインストール済みの実体は削除されない

mise unuseは、他の設定ファイルからも参照されなくなったバージョンをディスクから削除(prune)する機能を持つが、確認プロンプトへの応答が必要なため、-y(--yes)を付けずに実行すると実体は削除されずに残る。

$ mise unuse jq
$ ls ~/.local/share/mise/installs/jq/
1  1.7  1.7.1  latest

確実にディスクからも削除したい場合は-yを付ける。

$ mise unuse jq -y
mise removed: jq from /path/to/mise.toml
mise jq@1.7.1        uninstall
mise jq@1.7.1        remove ~/.local/share/mise/installs/jq/1.7.1
mise jq@1.7.1        remove ~/.cache/mise/jq/1.7.1
mise jq@1.7.1      ✓ done

–no-pruneで実体を残す

mise.tomlからの記述だけを削除し、インストール済みの実体は常に残しておきたい場合は--no-pruneを付ける。-yを付けてもインストール済みバージョンは削除されない。

$ mise unuse jq --no-prune -y

-g/–envで対象の設定ファイルを切り替える

既定ではカレントディレクトリのmise.tomlが対象になるが、-g(--global)でグローバル設定ファイル、--envmise.<env>.tomlを対象にできる。

$ mise unuse -g node@18.0.0
$ mise unuse --env staging node@20