なんでも書く

できる限り記録する

【mise use -gをしろ】miseでnodeインストールしたのにnodeが使えない事象の解消

大結論

mise install node@ltsをした後にmise use -g node@ltsをしていなかったから。

~/.config/mise/config.tomlに使用するツールのバージョンの設定がないとmiseでインストールしたツールが認識しない(ドキュメントをちゃんと読め)。
shimsだとmise ERRORが出るが、mise activateだと何も表示されないためインストール自体できていないと勘違いしてしまった。

以下、miseのshimsの設定不足と勘違いしてまとめた結果。

全く読む必要がないが、なんらかの理由でmise activateではなくshimsを使用する場合に参考になるかもしれないのとせっかく書いたので公開する。


はじめに

現在windows端末とLinux端末を使っている。 Linux端末はUbuntu+LDE Plasmaをインストールしており、そのLinux端末にmiseをインストールし、そのmiseを使ってnodeの開発環境を構築しようとしていた。 その際にwindows端末(WSL2)で起きなかったエラーが発生したので、その解決方法を記載する。

前提

OS: Ubuntu 24.04.2 LTS + KDE Plasma 5.27.12

シェル: Bash 5.2.21

結論

shimsのpathが通っていなかったから。
そのためshimsのpathを通すことでmiseでインストールしたツールを実行させることができる。
https://mise.jdx.dev/getting-started.html#activate-mise

Shims are symlinks to the mise binary that intercept commands and load the appropriate environment. Note that shims do not support all the features of mise activate.

事象確認

miseをインストールする

WSL2同様、クイックスタート通りにインストールする(以下参照)。 kohey94.hateblo.jp

実行コマンドは以下。

curl https://mise.run | sh
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
source ~/.bashrc

正常にインストール完了

nodeをインストールする

mise install node@lts

miseによりインストールできたのにnodeコマンドが実行しない。

miseのshimsのpathが通っているか確認する

以下のコマンドで確認できる。

mise doctor

shims_on_path: no となっているのでpathが通っていない。

pathを直接見てもshimのpathが通っていないことが確認できる。

解決方法

shims配下にnodeは存在するため、shimsのpathを通すことで解決する。

shimsのpathを通す

以下のコマンドでpathを通す。

echo 'export PATH="$HOME/.local/share/mise/shims:$PATH"' >> ~/.bashrc
source ~/.bashrc

pathを通したあと。

globalで使用するnodeの設定をしていなかったため、以下のコマンドを実行する。

mise use -g node@22.17.0

これで正常にnodeが実行できるようになった。

おわりに

公式ドキュメントを見ると、mise activateを使用していれば自動的にpathに追加されるとのこと(つまりshimsは使わなくて問題ないはず)。
https://mise.jdx.dev/dev-tools/shims.html#path-activation

If using mise activate, mise will automatically add the required tools to PATH.