miseとは?

  • 究極のツール管理

課題感

  • 開発ツールはプロジェクトごとに必要なバージョンが異なるのでシステム全体にインストールしたくない。
  • プロジェクトが要求するツールを開発者の間で共有し、開発環境の再現性を高める。

Benefits

  • とにかく痒い所に手が届く。
  • グローバル設定とプロジェクト設定、共有設定と個人設定で区分けがしっかり出来る。

Principals

  • 複数バージョンの共存、バージョン固定や他人との共有が必要ないツールは管理しない。OSのパッケージマネージャ(Homebrew, WinGet)で管理する。

miseの有効化

シェルにおいて有効化するのは簡単だ。問題はIDEなどGUIアプリからツールを参照するときや、特定のプロジェクトに属さないツールをアプリから参照するとき。

  • 例: Obsidianプラグインが要求するNodeはシステム全体の最新版を使いたいので、インストールされている最新版を指すnodeバイナリが必要。

Shims

  • グローバル設定のツールの参照用
  • OSのPATHに追加する