流行りのmiseをサブPCに導入してみた
びーぐるです🐶
mise、最近ちょっと流行ってますよね。
自分も機会があり、というのも丁度サブPCの環境再整備をしていたので導入してみました。
この記事ではmiseの導入部分をさらっと紹介したいと思います。
mise is 何?
複数の言語・開発ツールのバージョン管理を一元化するCLIのツールです。
同じようなツールでは asdf が有名かと思います。
加えて、タスク機能、環境変数を管理する機能もあり、他のツールを代替しこれ一つに集約できる可能性があります。
あとはRust製なので動作が速いところも嬉しいです。
「まいす」と呼びたくなりますが、フランス語なので読みは「ミーズ」です。
mise公式
何がいいの?
バージョン管理一元化ツール全般に言えることですが、言語ごとに異なるバージョン管理ツールを導入・設定する手間から解放されるのは大きなメリットかと思います。
mise独自の利点として単純に一番気に入っているのはシンプルで直感的なコマンドです。
例えば
mise up
だけでmise経由で導入したものをまとめてアップデートできます。
言わずもがな、高速で多機能なのはとても良いことです。
インストール手順
簡単です。
インストール
curl https://mise.run | sh
有効化(bashの場合)
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
WindowsやmacOSでも公式サイトのドキュメントを参考にインストールできます。
使い方
miseコマンドで詳細なヘルプが見られますので、ここでは簡単に紹介しておきます。
自身のアップデート
mise self-update
自身のアップデートは案外忘れがちです。
miseの最新版がある旨が表示されたら実行しておくと良いです。
私はmiseのVSCode拡張を入れているので、そこで教えてもらうことが多い気がします。
ツールのインストール及び利用バージョンの指定
mise u [-g] <tool>@<ver>
例:
mise u node@22
-g をつけると「グローバルインストール」(全体で共通して使う設定)になります。
-g を省略すると「ローカルインストール」(プロジェクト単位でのみ有効)となります。
<tool> にはツール名(node Claude Codeなど)、<ver> にはバージョン番号を指定します。バージョンを省略すると最新バージョン(latest)が指定され、mise upでまとめてアップデートも可能です。
インストールやバージョン指定の情報は、カレントディレクトリの mise.toml またはグローバル設定の ~/.config/mise/config.toml に記録されます。
ツールのアップデート
mise up
miseで管理しているツールを一括でアップデートします。
現在のディレクトリと、グローバルの両方で管理しているツールが対象です。
ツールのアンインストール
mise rm [-g] <tool>
インストールしているツールの確認
mise ls [-g]
ツール名とバージョンが一覧表示されます。
-g オプションを付けるとグローバルインストールのツールのみが表示されます。
結局何を入れた?
mise ls -g
aws 2.27.50 ~/.config/mise/config.toml latest
claude 1.0.44 ~/.config/mise/config.toml latest
gemini-cli 0.1.9 ~/.config/mise/config.toml latest
github-cli 2.75.0 ~/.config/mise/config.toml latest
node 24.4.0 ~/.config/mise/config.toml latest
terraform 1.12.2 ~/.config/mise/config.toml latest
uv 0.7.19 ~/.config/mise/config.toml latest
サブPCなので何も考えずに適当に思いついたものを導入。
どれも正常に動作していると思います。
まとめ
asdfと比べて特にコマンドのシンプルさと直感的な操作性が際立っていますので、開発環境の構築や管理が格段に楽になりそうです。
一通り触ってみて問題なさそうですのでメイン側PCにも導入していこうと思っています。
また、今回は触れませんでしたがタスク機能や環境変数の管理、バックエンドの選択など、miseにはまだまだ多くの機能があります。
次回があればasdfとの性能面(特にセキュリティ面)からの比較とともに、それらについても触れていきたいと思っています。
Discussion