mise.tomlに書いたツールを実際にインストールしたい

miseはプロジェクトごとに使うツールのバージョンをmise.tomlで管理する。mise.tomlにツールとバージョンを記述しただけでは、そのバージョンの実体はまだダウンロードされていない。mise installを実行すると、設定ファイルに書かれたツールを実際にダウンロード・インストールする。

mise install の基本

mise.tomlに以下のようにツールを記述する。

[tools]
jq = "1.7.1"

このディレクトリでmise installを実行すると、jqのバージョン1.7.1がダウンロードされる。ただし、初めて対象ディレクトリのmise.tomlを読み込む際は、設定ファイルの信頼(trust)が必要になる場合がある。信頼していない設定ファイルに対してmise installを実行すると、次のようにエラーになる。

$ mise install
mise ERROR error parsing config file: /path/to/project/mise.toml
mise ERROR Config files in /path/to/project/mise.toml are not trusted.
Trust them with `mise trust`. See https://mise.en.dev/cli/trust.html for more information.

この場合はmise trustを実行してから、改めてmise installを実行する。

$ mise trust
mise trusted /path/to/project

$ 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

インストール済みのツールに対して再度mise installを実行しても、何もダウンロードせずに終了する。

$ mise install
mise all tools are installed

バージョンを指定して直接インストールする

mise install <tool>@<version>とツール名・バージョンを直接指定すると、mise.tomlの内容にかかわらず、そのバージョンだけをインストールできる。

$ mise install jq@1.6
mise jq@1.6                  [1/2] install
mise jq@1.6                  [1/2] download jq-osx-amd64
mise jq@1.6                  [1/2] generate checksum jq-osx-amd64
mise jq@1.6                  [1/2] extract jq-osx-amd64
mise jq@1.6                ✓ installed

このコマンドはインストールのみを行い、mise.tomlの内容は書き換えない。mise lsで確認すると、jqのバージョン1.6と1.7.1の両方がインストール済みとして表示されるが、mise currentで現在有効なバージョンを確認すると、mise.tomlに書かれた1.7.1のままである。

$ mise ls jq
jq  1.6
jq  1.7.1  /path/to/project/mise.toml  1.7.1

$ mise current jq
1.7.1

プロジェクトで実際に使うバージョンを切り替えたい場合は、mise installではなくmise usemise.tomlの記述自体を変更する。