使わなくなったツールのバージョンをディスクから消したい
mise install <tool>@<version>でバージョンを指定してインストールを繰り返していると、使わなくなった古いバージョンがディスクに残り続ける。mise uninstallを使うと、インストール済みのツールを個別に削除できる。
mise uninstallの基本
jqのバージョン1.6と1.7.1の両方がインストールされている状態から、mise uninstall <tool>@<version>で1.6だけを削除する。
$ mise ls jq
jq 1.6
jq 1.7.1 /path/to/project/mise.toml 1.7.1
$ mise uninstall jq@1.6
mise jq@1.6 uninstall
mise jq@1.6 remove /path/to/data/installs/jq/1.6
mise jq@1.6 remove ~/Library/Caches/mise/jq/1.6
mise jq@1.6 ✓ uninstalled
$ mise ls jq
jq 1.7.1 /path/to/project/mise.toml 1.7.1
uninstallしてもmise.tomlの記述は変わらない
mise uninstallはインストール済みの実体を削除するだけで、mise.tomlの記述は変更しない。mise.tomlが参照しているバージョンをそのまま削除するとどうなるか確認する。
$ mise uninstall jq@1.7.1
mise jq@1.7.1 uninstall
mise jq@1.7.1 remove /path/to/data/installs/jq/1.7.1
mise jq@1.7.1 remove ~/Library/Caches/mise/jq/1.7.1
mise jq@1.7.1 ✓ uninstalled
$ cat mise.toml
[tools]
jq = "1.7.1"
mise.tomlの記述はそのままなので、mise currentは変わらず1.7.1を返す。ただしmise lsで確認すると、実体が存在しないことを示す(missing)が表示される。
$ mise current jq
1.7.1
$ mise ls jq
jq 1.7.1 (missing) /path/to/project/mise.toml 1.7.1
実体を削除した状態でmise installを実行すると、mise.tomlに記述された同じバージョンが再びダウンロードされる。
$ mise install
mise jq@1.7.1 [1/2] install
mise jq@1.7.1 [1/2] download jq-macos-arm64
mise jq@1.7.1 [2/2] checksum jq-macos-arm64
mise jq@1.7.1 [2/2] extract jq-macos-arm64
mise jq@1.7.1 ✓ installed
削除前に対象を確認する
--dry-runを付けると、実際には削除せずに対象を確認できる。
$ mise uninstall --dry-run jq@1.7.1
mise jq@1.7.1 uninstall
mise jq@1.7.1 remove /path/to/data/installs/jq/1.7.1
mise jq@1.7.1 remove ~/Library/Caches/mise/jq/1.7.1
mise jq@1.7.1 ✓ uninstalled (dry-run)
複数バージョンをまとめて削除したい場合は、バージョンを指定せずに--allを付ける。
$ mise uninstall --all jq
mise jq@1.6 uninstall
mise jq@1.6 remove /path/to/data/installs/jq/1.6
mise jq@1.6 ✓ uninstalled
mise jq@1.7.1 uninstall
mise jq@1.7.1 remove /path/to/data/installs/jq/1.7.1
mise jq@1.7.1 ✓ uninstalled
\第一線のプログラマーの行動原理を学べる!/
