【mise】miseで開発ツールとランタイム管理
https://1.bp.blogspot.com/-HQcPtd-CABc/VbNBIxfsbxI/AAAAAAAAv-4/gm_vIj3RRBA/s800/present_girl.png
【前提】
mise(旧: rtx)はRust製の開発ツールおよびランタイム管理ツールです。ミーズ(meez)と発音するようです。
asdfライクなコマンドで動作しますが、asdfより高速であり、シンプルなコマンドラインで動作するところが特徴です。
asdfは特定のランタイムを呼び出す際に、Shimsと呼ばれる実行コマンドをasdf execからコールしてバイナリを指定しますが、miseはShimsを利用せずバイナリのパスを直接指定するので、asdfよりオーバーヘッドがないためランタイム呼び出しが高速になるという仕組みです。
cliのリファレンスはこちらに詳細が記載されています。
【インストール】
miseには様々なインストール方法が用意されていますが、今回はHomebrewからインストールしてみます。
code: test.sh
$ brew install mise
...(途中略)
$ mise -v
2024.2.18 macos-arm64 (2024-02-24)
【アクティベート】
以下のコマンドを実行後、$ exec $SHELL -lでアクティベートします
code:test.sh
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
【プラグインの管理】
mise上ではランタイムや開発ツールを「プラグイン」として管理します。下記のコマンドでmiseにビルトインで用意されているプラグインを表示します。
code:test.sh
$ mise plugin ls --core
bun
deno
go
java
node
python
ruby
BunとDenoが入ってるのはアツい!
リモートリポジトリで管理されているプラグインは以下のコマンドで確認できます。
code:test.sh
$ mise plugins ls-remote
...(以下略)
試しにkubectlをプラグイン一覧に追加してみましょう。
code:test.sh
$ mise plugins install kubectl
mise ⚠️ kubectl is a community-developed plugin
mise url: https://github.com/asdf-community/asdf-kubectl
Would you like to install kubectl? Yes
mise plugin:kubectl ✓ https://github.com/asdf-community/asdf-kubectl.git#cbe6df4
$ mise plugins ls
kubectl
無事にkubectlがユーザー環境にプラグインとして用意されました
【ランタイム、開発ツールのインストール】
例として、Node.jsをグローバルインストールします。miseで管理しているNode.jsのバージョンを確認します。
code:test.sh
$ mise ls-remote node
...(以下略)
最新のバージョンを確認してインストールして、グローバルで利用したい場合は以下のコマンドを実行します。
code:test.sh
$ mise latest node
21.6.2
$ mise install node@latest
$ mise use -g node@latest
miseからインストールしたプラグインの管理状況を確認します。
code:test.sh
$ mise ls
Plugin Version Config Source Requested
node 21.6.2 ~/.config/mise/config.toml latest
$ node -v
v21.6.2
無事にインストールできましたね。
【余談】
kubectlも最新版をインストールしてみましょう。
code:test.sh
$ mise latest kubectl
1.29.2
$ mise use kubectl@latest
$ kubectl version
Client Version: v1.29.2
(以下略)
無事にインストールできましたね。