0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

anyenv から mise に切り替えました(メモ)

Posted at

こちらの記事を読んで、mise を使いたくなりました。

今までは anyenv を使用していたのですが、mise に切り替えようと思います。すでに Qiita や Zenn などに切り替えの方法を記事として書いてくれていた方が多くいらっしゃったのですが、自分の環境で同じようにできるか不安だったため、慎重に進めました。

そのメモとして、この Qiita 記事を書いておきます!

今の状況の確認

私の環境はこんな感じです。

PC: MacBook Pro M3 Max
OS: Tahoe 26.0.1
Shell: zsh

分かりやすいように、コマンドは以下のように書きます。
tomoki_saito@xeno-mbp の部分は、私の Mac のアカウント名です。

まず、anyenv でどの環境を使っているかを確認しました。

tomoki_saito@xeno-mbp ~ % anyenv envs
nodenv
phpenv

続いて、nodenv でどのバージョンの Node.js をインストールしているかを確認しました。

tomoki_saito@xeno-mbp ~ % nodenv versions
  system
  18.18.2
* 22.20.0 (set by /Users/tomoki_saito/.anyenv/envs/nodenv/version)
  23.7.0
  24.9.0

そして、phpenv でどのバージョンの PHP をインストールしているかを確認しました。

tomoki_saito@xeno-mbp ~ % phpenv versions
  system
  7.4.6
  8.0.9
  8.1.0
  8.1.2
* 8.1.4 (set by /Users/tomoki_saito/.anyenv/envs/phpenv/version)

一応パッケージも確認

念の為、Node.js, PHP のそれぞれのバージョンにグローバルでインストールされているパッケージを確認しておきます。

このシェルスクリプトを使います。

※各バージョンに切り替えて確認していっても良いのですが、面倒なので一気に見ます

nodenv versions | while read -r version; do
  version=$(echo $version | sed 's/[* ]//g')
  if [[ $version != "system" ]]; then
    echo "=== $version ==="
    NODENV_VERSION=$version npm list -g --depth=0
  fi
done

私の場合、このような結果になりました。

=== 18.18.2 ===
/Users/tomoki_saito/.anyenv/envs/nodenv/versions/18.18.2/lib
├── @google/clasp@2.4.2
├── corepack@0.19.0
├── npm-check-updates@17.0.6
├── npm@9.8.1
├── pnpm@10.9.0
├── update@0.7.4
├── vercel@39.2.2
├── wrangler@4.14.3
└── yarn@1.22.22

=== 22.20.0(setby/Users/tomoki_saito/.anyenv/envs/nodenv/version) ===
nodenv: version `22.20.0(setby/Users/tomoki_saito/.anyenv/envs/nodenv/version)' is not installed (set by NODENV_VERSION environment variable)
=== 23.7.0 ===
/Users/tomoki_saito/.anyenv/envs/nodenv/versions/23.7.0/lib
├── @anthropic-ai/claude-code@2.0.1
├── @biomejs/biome@2.2.4
├── corepack@0.33.0
├── create-next-app@15.5.4
├── npm@11.6.1
├── ts-node@10.9.2
├── vercel@48.1.6
└── wrangler@4.40.3

=== 24.9.0 ===
/Users/tomoki_saito/.anyenv/envs/nodenv/versions/24.9.0/lib
├── @anthropic-ai/claude-code@2.0.27
├── @biomejs/biome@2.3.1
├── ccusage@17.1.3
├── corepack@0.34.1
├── npm@11.6.2
├── pnpm@10.19.0
├── vercel@48.6.0
├── wrangler@4.45.0
└── wrnagler@1.0.0

現在 global に設定している v22.20.0 だけうまく表示されないので、

npm list -g

で確認します。結果は以下のようになりました。

tomoki_saito@xeno-mbp ~ % npm list -g
/Users/tomoki_saito/.anyenv/envs/nodenv/versions/22.20.0/lib
├── corepack@0.34.1
├── npm@11.6.2
├── pnpm@10.20.0
├── wrangler@4.45.3
└── yarn@1.22.22

私の場合、あまり多くのパッケージをグローバルにインストールしていないので、ここの段階で何か準備するというよりは「これらのパッケージをインストールしてたんだなぁ」と、メモとして控えておけば良さそうです。

mise のインストール

公式情報はこちらです。

私は brew でインストールしました。

brew install mise

ちゃんと使えるかを確認します。

tomoki_saito@xeno-mbp ~ % mise -V
              _                                        __              
   ____ ___  (_)_______        ___  ____        ____  / /___ _________
  / __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
 / / / / / / (__  )  __/_____/  __/ / / /_____/ /_/ / / /_/ / /__/  __/
/_/ /_/ /_/_/____/\___/      \___/_/ /_/     / .___/_/\__,_/\___/\___/
                                            /_/                 by @jdx
2025.10.21 macos-arm64 (2025-10-30)

かっこいい

mise のセットアップ

こちらにある通り、Shell で mise をアクティベートします。

zsh の設定ファイルの末尾に記載します。

echo 'eval "$(mise activate zsh)"' >> ~/.zshrc

設定ファイルを再読み込みします。

source ~/.zshrc

mise にインストールできる Node.js, PHP のバージョンを確認します。

mise には ls-remote というコマンドがあります。

Node.js

tomoki_saito@xeno-mbp ~ % mise ls-remote node
0.1.14
0.1.15
... (長いので省略)
25.0.0
25.1.0

PHP

tomoki_saito@xeno-mbp ~ % mise ls-remote php                      
4.0.0
4.0RC1
... (長いので省略)
8.5.0beta2
8.5.0beta3

ちなみに、PHP についてはコミュニティのプラグイン (asdf-php) が使用されています。

では、ここで確認したバージョンの内、使うものを mise でインストールします。

私の場合は、今のバージョンをそっくりそのままインストールするのではなく、使っているバージョンとこれから使いたいバージョンだけインストールしておきます。

mise install node@22.20.0 node@25.1.0 php@8.4.14

少し時間はかかるのですが、インストールが完了します。

きちんとインストールできたかを確認します。

tomoki_saito@xeno-mbp ~ % mise ls
Tool  Version  Source  Requested 
node  22.20.0 
node  25.1.0  
php   8.4.14

mise で使う Node.js, PHP のバージョンを指定します。

tomoki_saito@xeno-mbp ~ % mise use --global node@22.20.0
mise ~/.config/mise/config.toml tools: node@22.20.0
tomoki_saito@xeno-mbp ~ % mise use --global php@8.4.14
mise ~/.config/mise/config.toml tools: php@8.4.14

※ちなみに、ここでインストールされていない場合はインストールされるので、先ほどの install を飛ばしていきなり use でも大丈夫です。

シェルに記載されている通り、~/.config/mise/config.toml が設定ファイルのパスです。せっかくなので、中身を見ておきましょう。

tomoki_saito@xeno-mbp ~ % cat ~/.config/mise/config.toml
[tools]
node = "22.20.0"
php = "8.4.14"

このように、toml 形式で設定が保存されています。

また、Node.js, PHP のパスも確認しておきましょう。

tomoki_saito@xeno-mbp ~ % which node
/Users/tomoki_saito/.local/share/mise/installs/node/22.20.0/bin/node
tomoki_saito@xeno-mbp ~ % which php
/Users/tomoki_saito/.local/share/mise/installs/php/8.4.14/bin/php

このように、mise/installs の配下にあります。

ちなみに、mise use を実行する前のパスはここでした。

tomoki_saito@xeno-mbp ~ % which node
/Users/tomoki_saito/.anyenv/envs/nodenv/shims/node
tomoki_saito@xeno-mbp ~ % which php
/Users/tomoki_saito/.anyenv/envs/phpenv/shims/php

ここまででセットアップは完了です!

anyenv のクリーンアップ

もうこれで Node.js, PHP を mise で使うことはできるのですが、今まで使っていた anyenv およびここ経由でインストールしていた Node.js, PHP を削除しておきます。

まず、zsh の設定から、anyenv 関連の記述を削除します。

cat ~/.zshrc

私の場合、以下の部分が関係しています。

eval "$(pyenv init --path)"
eval "$(anyenv init -)"
export PATH="$HOME/.phpenv/bin:$PATH"
eval "$(phpenv init -)"

では、Vim で設定ファイルを開いて削除します。

vim ~/.zshrc

i で書き込みモードに切り替え、上記のような記述を消し、escape からの :wq で保存します。

保存したら、設定ファイルを再読み込みします。

source ~/.zshrc

続いて、anyenv 関連のファイルなどを削除します。

rm -rf ~/.anyenv

きちんと削除されています。

tomoki_saito@xeno-mbp ~ % ls ~/.anyenv 
ls: /Users/tomoki_saito/.anyenv: No such file or directory

私の場合は brew で anyenv をインストールしていたので、ここからもアンインストールします。

tomoki_saito@xeno-mbp ~ % brew uninstall anyenv
Uninstalling /opt/homebrew/Cellar/anyenv/1.1.5... (23 files, 31.1KB)

まとめ

これで anyenv から mise への移行がスッキリ完了しました!

mise はバージョン管理だけでなくタスクランナーとしても使えるので、これから色々と試してみようと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?