開発環境を切り替えたい(mise

$ brew install mise
$ mise --version
2024.3.11 macos-x64 (2024-03-30)    # Intelの場合
2024.3.11 macos-arm64 (2024-03-30)  # Apple Siliconの場合
$ mise use -g python
$ mise use -g pipx
$ mise use -g poetry

環境開発を切り替えるツールです。 同様のツールにanyenvasdfなどがありますが、 最近はmiseを使うのがよさそうです。

注釈

2024年1月にコマンド名がrtxからmiseされました。

プラグイン設定を確認したい(ls

$ mise ls
$ mise ls プラグイン名

// $HOMEで実行した場合
$ mise ls python
Plugin  Version  Config Source              Requested
python  3.11.6
python  3.11.8
python  3.12.2   ~/.config/mise/config.toml latest

// $KumaROOT(このリポジトリ)で実行した場合
$ mise ls python
Plugin  Version  Config Source                                    Requested
python  3.11.6
python  3.11.8   ~/repos/github.com/shotakaha/kumaroot/.mise.toml 3.11
python  3.12.2

lsコマンドで、プラグイン設定を確認できます。 設定ファイルのパスも確認できます。 ローカル設定ができているか確認できます。

更新したい(up / upgrade

$ mise ls
Plugin  Version            Config Source              Requested
python  3.12.2 (outdated)  ~/.config/mise/config.toml 3.12

$ mise up
mise python@3.12.3 ✓ installed
mise python@3.12.2 ✓ removing ~/.local/share/mise/installs/python/3.12.2

$ mise ls
Plugin  Version  Config Source             Requested
python  3.12.3  ~/.config/mise/config.toml 3.12

listコマンドでプラグインの更新の有無を確認できます。 upgradeコマンドでプラグイン本体を一括で更新できます。

プラグインを使いたい(use

// システム全体に設定
$ mise use -g プラグイン名

// ローカルに設定
$ mise use プラグイン名
$ mise use プラグイン名@バージョン

useコマンドで、利用するプラグインのバージョンを変更できます。 バージョンを省略するとlatestになります。

-gオプションでシステム全体のバージョン指定ができます。 グローバルな設定は~/.config/mise/config.tomlに保存されます。 ローカルな設定はmise useしたパスの.mise.tomlに保存されます。

指定したバージョンのプラグインが見つからない場合は、自動的にinstallコマンドが実行され、~/.local/share/mise/installs/にインストールされます。 実行ファイルはバージョンごとに分けてインストールされます。

Pythonを使いたい

$ mise use python
$ mise use python@バージョン

// $HOMEで実行した場合
$ mise use -g python  # システム全体(--global)はlatest を利用する
mise ~/.config/mise/config.toml tools: python@3.12.2

$ mise ls python
python  3.12.2   ~/.config/mise/config.toml latest

$ which python
~/.local/share/mise/installs/python/latest/bin/python

// $KumaROOTで実行した場合
$ mise use python@3.11  # このリポジトリは3.11を指定する
mise ~/repos/github.com/shotakaha/kumaroot/.mise.toml tools: python@3.11.8

$ mise ls python
Plugin  Version  Config Source                                    Requested
python  3.11.6
python  3.11.8   ~/repos/github.com/shotakaha/kumaroot/.mise.toml 3.11
python  3.12.2

$ which python
~/.local/share/mise/installs/python/3.11/bin/python

Nodeを使いたい

$ which myst
~/.local/bin/myst    # pipx でインストールした
$ myst --version  # ~/.local/bin/myst
MyST requires node 16, 18, or 20; you are running node 21.

// Node20に変更
$ mise use node@20  # ~/.local/share/mise/installs/node/20.10.0/bin/node
$ mise ls node
Plugin  Version  Config Source                                  Requested
node    20.9.0   ~/repos/gitlab.com/qumasan/haniwers/.mise.toml 20
$ myst --version
v1.1.32

miseを使って、Nodeのバージョンを変更した具体例です。

Homebrewを使ってインストールしたnodenoode@21に更新してしまったため、mystmd(v1.1.31)が動かなくなってしまいました。 このプロジェクトだけnode@20に切り替えて、mystmdを動かすことができました。

注釈

mystmd(v1.1.42)は、Node@21でも動作するようになっていました。

プラグイン名を確認したい(plugins ls-remote

$ mise plugins ls-remote

plugins ls-remoteコマンドで、利用できるプラグイン名を一覧できます。

プラグインのバージョンを一覧したい(ls-remote

$ mise ls-remote プラグイン名
$ mise ls-remote python
$ mise ls-remote poetry
$ mise ls-remote pipx
$ mise ls-remote node
$ mise ls-remote go
$ mise ls-remote hugo

ls-remote プラグイン名コマンドで、インストールできるバージョンを一覧できます。 プラグインによっては、下記のようなメッセージが表示されるので``y(es)`を入力します。

$ mise ls-remote pipx
⚠️  pipx is a community-developed plugin: https://github.com/yozachar/asdf-pipx
Would you like to install pipx? (y/n)

有効/無効にしたい

注釈

2023年11月にfishで自動的に有効にする機能が追加されました。 なので、このコマンドはもう必要ありません。

$ eval "$(rtx activate bash)"
$ eval "$(rtx activate zsh)"
$ rtx activate fish | source
$ execx($(rtx activate xonsh))

activateコマンドを使って、現在のセッションでrtxを有効にできます。 利用するシェルによって、コマンドが異なる点に注意してください。 rtxをお試しで使ってみたい場合によいでしょう。 常用する場合は、シェルの設定ファイルに追記します。

$ rtx deactivate

deactivateコマンドで無効にできます。