1
1

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に乗り換えて環境管理を楽にしてみる

1
Last updated at Posted at 2026-05-31

概要

筆者はこれまで各言語のバージョン管理を*envで行い、env群の管理をanyenvで行ってきました。しかし、anyenvは公式GitHubの更新が数年前から事実上停止しており、今後出て来るであろう新たなenvへの対応は恐らくないものと推察1されます。しかも、Pythonの管理をこれまでpyenvでバージョン管理し、ライブラリ群の管理はPipenvで行うという方式を採用してきましたが、uvを使えば1つで両方管理出来ることを知りました。しかし、anyenvはuvの管理には対応していません。そこで、新たなバージョン管理用アプリをGemini君にお勧めしてもらった所、miseを勧められました。これは開発環境のバージョン管理を行う新興のOSSの様です。早速乗り換えてみた所、なかなかの使い易さでした。

前準備: anyenv及び*envをアンインストール

anyenvで構築した*env環境をアンインストールします。最近はあまりプライベートでコードが書けていなかったのを反省していた所でしたが、環境乗り換えには好都合でした。依存関係を誤って破壊してしまうとトラブルシューティングに手間取るので慎重に進めます。

各*envで構築した環境のアンインストール

ゴミが大量に残ると厄介なので、anyenvでインストールした各*envで構築した環境をアンインストールします。筆者の場合、pyevn, rbenv, nodenv, goenvがインストールされていました。

$ anyenv versions
goenv:
* 1.19.2 (set by /Users/user/.anyenv/envs/goenv/version)
nodenv:
* 24.13.1 (set by /Users/user/.anyenv/envs/nodenv/version)
pyenv:
  system
* 3.12.8 (set by /Users/user/.anyenv/envs/pyenv/version)
rbenv:
  system
  3.1.2
* 4.0.1 (set by /Users/user/.anyenv/envs/rbenv/version)

完了したら、各*envをアンインストールします。(以下はpyenvの例)

anyenv uninstall pyenv

anyenvをアンインストール

anyenvをアンインストールします。筆者はMacなのでHomebrewを用いました。

brew uninstall anyenv

.bash_profile, .bashrc内の環境変数を削除

.bash_profile, .bashrc内のanyenv, *env関連の環境変数を削除またはコメントアウトします。

anyenvの初期化は必ず無効化する
# anyenv
eval "$(anyenv init -)"

miseのインストール

前準備が完了したらmiseをインストールします。Homebrewを用いると簡単です。

brew install mise

自動でPATHなども通してくれるため、インストール完了後から使えます。

$ mise version
              _                                        __              
   ____ ___  (_)_______        ___  ____        ____  / /___ _________
  / __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
 / / / / / / (__  )  __/_____/  __/ / / /_____/ /_/ / / /_/ / /__/  __/
/_/ /_/ /_/_/____/\___/      \___/_/ /_/     / .___/_/\__,_/\___/\___/
                                            /_/                 by @jdx
2026.5.16 macos-arm64 (2026-05-28)

以下を.bash_profileに追記します。

eval "$(mise activate bash)"

.bash_profileを再読み込みします。

source .bash_profile

Bash Completionの有効化

TAB補完は必須なので設定。

mise use -g usage
mkdir -p ~/.local/share/bash-completion/completions
mise completion bash --include-bash-completion-lib > ~/.local/share/bash-completion/completions/mise

環境の再構築

anyenvで*envを管理していた頃の環境を復元しようと思います。但し、Pythonについてはuvで管理することとし、uvの管理をmiseで実施しようと思います。加えてnodeはLTSバージョンをインストールしたいのでバージョン番号を明に指定しています。それ以外はlatestで指定しています。(Rubyについてはインストール時にbuildを実行するオプションを有効化しています。無効化されている場合、警告が出ます。)

mise use --global uv@latest
mise use --global go@latest
mise settings ruby.compile=true
mise use --global ruby@latest
mise use --global node@24.13.1

インストール完了後、バージョン一覧を確認します。

$ mise ls
Tool  Version  Source                      Requested 
go    1.26.3   ~/.config/mise/config.toml  latest
node  24.13.1  ~/.config/mise/config.toml  24.13.1
ruby  4.0.5    ~/.config/mise/config.toml  latest
uv    0.11.17  ~/.config/mise/config.toml  latest

この後、uvによるPythonの環境構築もテストしてみましたが成功しました。以下、その時のサンプルです。(Git管理のリポジトリとして初期化したい場合は作成したディレクトリ配下でuv initを実行します。)

$ mkdir python_test
$ cd python_test/
$ uv venv --python 3.14
Using CPython 3.14.4 interpreter at: /opt/homebrew/opt/python@3.14/bin/python3.14
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
$ uv run python --version
Python 3.14.4

まとめ

anyenvによる環境管理に限界を感じていたところだったので、miseに乗り換えて心機一転環境構築を行い、無事完了しました。まだ、miseもuvも使い熟せていないので色々と試しながら覚えていこうと思います。

  1. 最後の更新は4年前です。筆者も以前Pull Requestを出しましたが、いまだレビューもマージもなされていません。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?