数年ぶりにバージョン管理ツールを mise に変えてみた
セットアップとバージョン管理ツール
最近、新しいMacBook Proをセットアップする機会がありました。
M4 世代の MacBook Pro いいですね。何より Nano-texture のディスプレイが本当にいいです。
慣れたら昔のテッカテカ画面のMacBook Proが使えなくなりそうです。
新しい端末を買ったときのセットアップも、ただ今まで通りのものをいれているだけというのもどうなんだ、というところで今回はバージョン管理ツールを切り替えることにしました。
バージョン管理ツールはセットアップには欠かせないですからね。
今までは asdf を使っていましたが、そろそろ新進気鋭のバージョン管理ツールがあるやろ、と思っていたところ mise というものがあって、それがとてもよさげだったので試しました。
mise について
mise は「開発環境セットアップツール」です。意味はフランス語の「setup」で発音は meez
とのことです。
特徴としては
-
mise.toml
を元にプロジェクト毎の環境を管理出来る -
Python や Node.js のバージョン管理が可能
-
環境変数の管理も可能
-
ビルドやテストのタスク管理機能も付いている
といったところになります。
特に環境変数の管理については、 asdf
にはなかった機能で、必要であれば direnv を使う必要がありました。
ディレクトリ毎に環境変数を設定してくれると、主にAWSのCredentials等で Shellベースで操作をするときなどで便利に使えます。
まあ、とはいえ、個人的にはこういったものは結局本丸のバージョン管理がどれくらい使いやすいねん、というところが全てだと思っていますのでそこまで刺さらなかったのですが
公式ドキュメントの Comparison to asdf のページが面白くて、
UXのところにある画像で
asdf has a lot of strange UX papercuts
commands should be verbs never an adjective
など意図強め(だけど確かに…)な表現が多く見られたので、使い勝手を確認すべく移行を決心しました。
asdf からの移行手順も上記ページにあるので、もし興味が出て移行したくなった場合は参照してください。
使い方
インストール
インストール方法は 公式ドキュメント Getting Started を参照してください
2024/12時点では
curl https://mise.run | sh
で ~/.local/bin/mise
としてインストールされますので、各ShellにあわせてPATHを通します。
Python の環境構築例
早速Pythonの環境構築での例です。
まず、インストール出来そうなバージョンを確認します。
ls-remote
コマンドを使えばOKです。これは覚えやすい。
mise ls-remote python@3.12
のように、末尾にバージョンを指定すれば、それに合った形のものを一覧で返してくれます。
上記の例だと
3.12.0 3.12-dev 3.12.1 3.12.2 3.12.3 3.12.4 3.12.5 3.12.6 3.12.7 3.12.8
みたいな感じです。 mise use python@3
のようにすれば、バージョン3系が全て候補として出てきます。
そしたら、あとはいれるだけです。
mise use python@3.12.8
これだけで入ります!
global なバージョンを指定する場合は
mise use -g python@3.12.8
のように指定すればOKです。
mise ls python
のようにすればインストール済みのPythonのバージョンおよびglobalに指定されているバージョンの確認が出来ます。
年々覚えられるコマンドが減ってきたので、コマンドが覚えやすいのは非常に助かります。
もっとも、 asdf
という文字列のほうが打ちやすいのは打ちやすいのですが…
環境変数を設定してみる
先ほど記述したように、フォルダ毎の環境変数設定にも対応します。
mise set FOO=bar
としておけば、環境変数 FOO
に bar
という値が入ります。
管理ファイルの mise.toml
に
[env] Foo = "bar" [tools] python = "3.13.1"
のように入り、それで管理されます。
解除は
mise unset FOO
でOKです。
シークレットなどのローカルに置いておくべき環境変数の場合は、 mise.local.toml
を作成して、gitignoreしておくと良いかと思います。
ちなみに、mise.local.toml
のあるフォルダにいくと、信頼するか?と聞かれるので、 mise trust
すればOKです。
まとめ
今回はバージョン管理ツール mise についてでした。
コマンドそのものが非常に覚えやすいですし、確かに asdf
に比べて plugin add
などのコマンドを打つ必要がないのでとても快適に感じました。
やっぱり定期的に使用ツールの見直しが必要ですね。
最大の課題は、 mise
という単語を覚えられるかどうか…ですね。。
どうしても手癖で misc
と打ってしまうたびに、もう若くないんやなあ…と思わされてしまいます 🫠