はじめに
以下の MacBook Pro(Intel CPU の2020年モデル)から M4 MacBook Air への移行に際して、前から気になっていた「mise」を使い始めてみた話です。
今回の内容
mize が気になり始めたのは、以下の記事を見てからでした。
●ターミナルを使う人は、とりあえず「mise」を入れておく時代。 ・・・を夢見て。
https://zenn.dev/dress_code/articles/a99ff13634bbe6
Node.js・Python のバージョン管理
上記の記事に書かれている mise でできることの話は、色々な内容が気になったのですが、今回はとりあえず Node.js・Python のバージョン管理をやってみます。
ちなみに、Windows・Mac での Node.js・Python のバージョン管理は、以下などを使っていました。
- Mac での Node.js の例
- tj/n: Node version management( https://github.com/tj/n )
- Python の例
- Mac: pyenv/pyenv: Simple Python version management( https://github.com/pyenv/pyenv )
- Windows: pyコマンド(Python Launcher for Windows)
とりあえず今回は「上記の n・pyenv のかわりに mise を使う」というのをやっていきます。
mise を試していく
セットアップ
公式の情報を見つつセットアップを進めていきます。以下のページを見ると「Getting Started」のページへのリンクがあります。
●Home | mise-en-place
https://mise.jdx.dev/
リンク先は以下で、OS ごとの導入方法が書かれています。
●Getting Started | mise-en-place
https://mise.jdx.dev/getting-started.html
自分が今回 Mac でセットアップした際には、以下の「Brew」を選択すると提示される Homebrew を使ったインストールを行いました。
brew install mise
上記が完了したら、さらに以下のコマンドを実行します。
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
2つ目のほうのコマンドは、公式の「mise activate」の部分に書かれている以下の内容に従ったものです。
この対応をせずに進めていたら、この後に miseコマンドで導入した Node.js・Python にパスが通ってない状態になりました(← miseコマンド自体はパスが通っている状態ではあるものの)。
それともう1つ、以下もインストールしました。これは、この後の手順で Node.js などをインストールした際に、 mise WARN gpg not found, skipping verification
というワーニングが出ていたことに対する対処です。
brew install gnupg
Node.js・Python の導入
それでは、公式の以下の情報や他の参照先の情報を見つつ、Node.js・Python をインストールしていきます。
公式の情報
公式以外の情報
●Node.jsバージョン管理ツールとしてのmise
https://zenn.dev/light_planck/articles/mise-node-20240603
●ヨクト株式会社 | miseで一元管理!Node.js、Ruby、Flutter、Python、Rustのバージョン管理完全ガイド
https://yocto-life.co.jp/blog/about_mise
Node.js のインストール
Node.js のインストールを行ってみます。コマンドについて、以下の Node v24.x をグローバルインストールするもので進めます。
mise use --global node@24
なお、上記の --global
は -g
と略しても良いようです。
mise use -g node@24
上記を実行すると、以下のように v24.4.1 がインストールされました。
Python のインストール
次に Python の 3.x をインストールします。
mise use -g python@3
こちらは、以下のバージョンがインストールされました。
Node.js・Python の導入後の確認
Node.js・Python の導入ができたかを確認してみます。miseコマンドを使ったものと、nodeコマンド・pythonコマンドのバージョン情報表示のそれぞれを試しました。
mise ls
node -v
python -V
上記の実行結果は、以下のとおりです。
Node.js の違うバージョンのインストール
さらに以下のコマンドで、Node.js の異なるバージョンをインストールしてみます。
mise use -g node@23
その後、先ほど使ったコマンドと、先ほど使ったコマンドに --current
をつけたものを実行してみます。
mise ls
mise ls --current
そうすると、以下のようにインストールされた全てのバージョンが表示されたり、また、現在利用されているバージョンのみが表示されたりしました。
Node.js のバージョン切り替え(グローバル)
インストールした Node.js の 2つのバージョン切り替えをグローバルでやってみます。 上記の状態から以下を実行します。
mise use -g node@24
その結果、以下のように利用される Node.js のバージョンが切り替わりました。
Node.js のバージョン切り替え(ローカル)
Node.js のバージョン切り替えを、今度はローカルでやってみます。以下の -g
をつけないコマンドを使います。
mise use node@23
上記を実行したところ、以下のように mise.toml
というファイルが作られ、そこに利用する Node.js のバージョンの情報が書かれる形になりました。
[tools]
node = "23"
ちなみに 1つ上の階層に移動すると、利用する Node.js のバージョンがグローバル設定のものにかわりました。
アンインストール
先ほどインストールしたものをアンインストールする場合は、以下のコマンドで良いようです。
mise uninstall node@24
おわりに
今回、mise を使った Mac での Node.js・Python のバージョン管理を少し試しました。今後は、以下に書いたような内容も試していければと思います。
今後試したいこと
Rust を扱う
mise について公式の情報を見ると、Node・Python という項目以外に以下のものもあるようでした。
個人的には、mise を使った Rust のバージョン管理も試してみたいところです。
Windows で試す
また Windows でも、例えば以前セットアップした chocoコマンド(Chocolatey)を使った導入などを試してみられればと思っています。
choco install mise
その他
ヘルプ
miseコマンドで何ができるか気になってヘルプを表示させてみた時に、その出力をキャプチャしたので、その内容を掲載してみます。
これも、別途内容を確認できればと思っている部分です。