⚒️

【管理ツール】mise-en-place 導入録

に公開

この記事について

多くのツールを一元的に管理できるmise-en-placeを導入してみたので備忘録として共有します。
私の環境では以下を各バージョン管理ツールを使用して使用していました。
タスクランナーに関しても基本的には Makefileを使用することが多かったのでこれを機に一元管理したいと考えています

言語 バージョン管理
node nodebrew
dart(Flutter) FVM
Rust Rustup
Ruby rbenv
...

インストール方法

管理ツールの削除

※ brew 経由で削除しています

Nodebrew の削除

brew uninstall nodebrew

FVM(Flutter Version管理) の削除

fvm destroy
dart pub global deactivate fvm
brew uninstall fvm
brew untap leoafarias/fvm

rbenv の削除

brew uninstall rbenv ruby-build

rustup の削除

brew uninstall rustup rustup-init
brew install mise

今回はHomebrew 経由で入れていますが他にも導入方法があります。

## 過去の記事と変更している為注意
## Path を通す(zsh)
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc 

導入確認

  • バージョン確認
mise -v
              _                                        __              
   ____ ___  (_)_______        ___  ____        ____  / /___ _________
  / __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
 / / / / / / (__  )  __/_____/  __/ / / /_____/ /_/ / / /_/ / /__/  __/
/_/ /_/ /_/_/____/\___/      \___/_/ /_/     / .___/_/\__,_/\___/\___/
                                            /_/                 by @jdx
2025.4.11 macos-arm64 (2025-04-27)
  • doctor実行
    • No problems foundが表示されることを確認
mise doctor

...
env_vars:
  MISE_SHELL=zsh

settings:

No problems found

各コマンド

mise 自体のアップデート

  • brew 経由だと上記のコマンドは実行不可?
mise self-update
## mise ERROR mise is installed via a package manager, cannot update

## brew 経由
brew upgrade mise

利用可能なツール及びバージョンの確認

  • 一覧取得
mise ls-remote --all
  • 各ツールの取得はmise ls-remote <言語/ツール>で取得可能
## 各ツール取得
mise ls-remote ruby
mise ls-remote flutter
mise ls-remote node

ツールのインストール及び使用

mise install コマンドも存在するが、有効化にはmise useで対応可能?
mise use mise unuse コマンドで有効化・非有効化を行うことが可能

  • グローバル環境
    • -g オプションを付けることでグローバルへの適応が可能
    • ~/.config/mise/config.toml 以下に設定値が反映されます
## 追加
mise use -g node@23.10.0
node -v
## v23.10.0

## 削除
mise unuse -g node@23.10.0
  • リポジトリ環境
    • リポジトリのルートでmise use <ツール>@<バージョン>を叩くとmise.tomlが作成されます
## 追加
mise use flutter@3.29.3
flutter doctor

## Flutter (Channel stable, 3.29.3, on macOS 15.4.1 24E263 darwin-arm64, locale ja-JP)

インストール済みのツール確認

mise list

## Tool     Version           Source                      Requested 
## flutter  3.29.3-stable     ~/.config/mise/config.toml  3.29.3
## node     23.10.0           ~/.config/mise/config.toml  23.10.0
## ...

エラーが起きた箇所

  • ERROR Permission denied (os error 13) が表示されました
    • 関連issue
      • 私の環境ではrbenvを使用していた事で 既に~/.local/state/が存在していた事が原因の可能性が高い
      • ~/.local/state/を削除し,miseを再インストールすることで 解消
...
mise ERROR failed create_dir_all: ~/.local/state/mise/trusted-configs
mise ERROR Permission denied (os error 13)
mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information

拡張機能

CI での活用

  • CI での使用も想定されている為、Github Actions などでも使用可能
  • Step が用意されていなくても容易にインストールできる

参考

https://dev.to/napoleonna/how-to-use-mise-with-fvm-2p1n
https://zenn.dev/light_planck/articles/mise-node-20240603
https://fvm.app/documentation/getting-started/faq#how-to-uninstall-fvm
https://yocto-life.co.jp/blog/about_mise
https://zenn.dev/akineko/articles/8fe959a02cb94b
https://dev.classmethod.jp/articles/setup-and-manage-dev-tools-with-mise/

Discussion