mise on Ubuntu — Node/Python/Ruby/GoをまとめてVersion管理する方法

開発環境




Ubuntu で Node.js・Python・Ruby・Go を全部使おうとすると、ツールの数がどんどん増えてきます。nvmでNodeを管理して、pyenvでPythonを管理して、rbenvでRubyを管理して……と、シェル設定がどんどん複雑になっていきます。

結論から言うと、mise(ミズ)を使えば1ツールで全言語のバージョン管理ができます。本記事では、実際に Ubuntu 24.04 LTS の Docker コンテナで mise をインストールし、Node.js v24.16.0・Python 3.12.13・Go 1.26.4 の3言語を動かした実測結果を元にセットアップ手順を解説します。

この記事のポイント

  • mise は curl https://mise.run | bash の1コマンドでインストールできる(Ubuntu 24.04 実測済み)
  • Node.js LTS(v24.16.0)・Python 3.12.13・Go 1.26.4 を同じ操作感でインストールできる
  • .mise.toml に書くだけでプロジェクト別バージョンをチーム全員で統一できる
  • nvm・pyenv・rbenv を全部削除して mise 1本に集約するだけでシェル設定がすっきりする

目次

  1. mise とは?既存ツールとの違い
  2. Ubuntu 24.04 に mise をインストールする
  3. シェル統合(mise activate)を設定する
  4. Node.js を mise で管理する
  5. Python を mise で管理する
  6. Go を mise で管理する
  7. Ruby を mise で管理する
  8. .mise.toml でプロジェクト別バージョンを固定する
  9. よくあるエラーと解決策
  10. まとめ

mise とは?既存ツールとの違い

mise(ミズ)は、複数のプログラミング言語のバージョンを1ツールでまとめて管理できるバージョンマネージャーです。もともとは rtx という名前で開発されていましたが、2023年に mise に改名されました。Rust 製で動作が高速なのが特徴です。

正直、「また新しいツールか……」と思う気持ちはよくわかります。でも、mise を使ってみると、今まで言語ごとにバラバラだった設定が1つにまとまるのが本当に快適です。公式サイト(mise.jdx.dev)でも「Your dev env, already prepped(開発環境を、もう整えてある状態に)」というキャッチコピーで、1ツールで言語・環境変数・タスクをまとめて扱える点を打ち出しています。

mise 公式サイト(mise.jdx.dev)トップページ
mise 公式サイト(mise.jdx.dev)トップページ

ubuntu:24.04 コンテナで mise 2026.6.6 と主要ツールを比べてみると、次のような差があります(実測結果をベースに作成):

mise vs 従来ツール:マルチ言語バージョン管理の比較
mise vs 従来ツール:マルチ言語バージョン管理の比較

注目してほしいのは「設定ファイル」の列です。nvm は .nvmrc、pyenv は .python-version、rbenv は .ruby-version と、言語ごとに別々の設定ファイルが必要です。mise なら .mise.toml の1ファイルに全言語をまとめて書けます。

注意

本記事のコマンドは Ubuntu 24.04 LTS(Noble Numbat) で検証しています。Ubuntu 22.04 LTS でも基本的に同じ手順で動作しますが、パッケージのバージョンが異なる場合があります。

Ubuntu 24.04 に mise をインストールする

手順1:依存パッケージをインストールする

mise のインストール自体には curlca-certificates だけあれば十分です。




ubuntu@linuxlab: ~
$ sudo apt update && sudo apt install -y curl ca-certificates
Hit:1 http://ports.ubuntu.com/ubuntu-ports noble InRelease
Get:19 http://ports.ubuntu.com/ubuntu-ports noble-security/main arm64 Packages [1904 kB]
Setting up ca-certificates (20240203) …
Setting up curl (8.5.0-2ubuntu10.9) …

手順2:mise を公式インストーラーで導入する

mise は curl https://mise.run | bash の1コマンドでインストールできます。公式の install.sh をダウンロードして実行するシンプルな方式です。公式の Getting Started ページでも、この curl ワンライナーが最初の導入方法として案内されています。

mise 公式 Getting Started ページ(mise.jdx.dev)
mise 公式 Getting Started ページ(mise.jdx.dev)

実際のインストール手順は次の通りです。




ubuntu@linuxlab: ~
$ curl https://mise.run | bash
mise: installing mise…
mise: installed successfully to /root/.local/bin/mise
mise: run the following to activate mise in your shell:
echo “eval \”$(/root/.local/bin/mise activate bash)\”” >> ~/.bashrc

/root/.local/bin/mise(一般ユーザーなら ~/.local/bin/mise)にインストールされます。インストール後はいったん PATH を通しておきます。




ubuntu@linuxlab: ~
$ export PATH=”$HOME/.local/bin:$PATH”
$ mise –version
2026.6.6 linux-arm64 (2026-06-13)

Ubuntu 24.04 で実際に動かすと、mise 2026.6.6 が正常にインストールされました。インストールにかかった時間は数秒以内で、コンテナ環境でも問題なく動作します。

シェル統合(mise activate)を設定する

mise をインストールしただけでは、ターミナルを閉じると PATH が元に戻ってしまいます。mise activate bash のコマンドを ~/.bashrc に追加することで、ターミナルを開くたびに自動で mise が有効になります。




ubuntu@linuxlab: ~
$ echo ‘eval “$(~/.local/bin/mise activate bash)”‘ >> ~/.bashrc
$ source ~/.bashrc
$ mise doctor
version: 2026.6.6 linux-arm64 (2026-06-13)
activated: yes
0 problems found

mise doctoractivated: yes と表示されれば設定完了です。実際に ubuntu:24.04 コンテナで確認した mise doctor の全出力は次の図の通りです:

mise doctor の実行結果(Ubuntu 24.04 実測)
mise doctor の実行結果(Ubuntu 24.04 実測)

zsh を使っている場合は ~/.bashrc ではなく ~/.zshrc に、fish を使っている場合は ~/.config/fish/config.fish に書き換えてください。




ubuntu@linuxlab: ~(zsh 向け)
# zsh の場合
$ echo ‘eval “$(~/.local/bin/mise activate zsh)”‘ >> ~/.zshrc
# fish の場合
$ echo ‘~/.local/bin/mise activate fish | source’ >> ~/.config/fish/config.fish

Node.js を mise で管理する

Node.js LTS をインストールする

Node.js の LTS(長期サポート)バージョンをインストールするには mise use --global node@lts を実行します。--global オプションを付けると、どのディレクトリでもこのバージョンが使われるようになります。




ubuntu@linuxlab: ~
$ mise use –global node@lts
mise node@24.16.0 [1/3] install
mise node@24.16.0 [1/3] download node-v24.16.0-linux-arm64.tar.gz
mise node@24.16.0 [2/3] checksum node-v24.16.0-linux-arm64.tar.gz
mise node@24.16.0 [3/3] extract node-v24.16.0-linux-arm64.tar.gz
mise node@24.16.0 ✓ installed
mise ~/.config/mise/config.toml tools: node@24.16.0
$ node –version
v24.16.0
$ npm –version
11.13.0

ubuntu:24.04 コンテナでの実測では、Node.js v24.16.0(npm 11.13.0 同梱)が約16秒でインストールされました。Node.js は公式バイナリを直接ダウンロードするため、コンパイルが発生せず高速です。

特定バージョンを指定してインストールする

Node.js 20(LTS)など特定のメジャーバージョンを指定することもできます。




ubuntu@linuxlab: ~
# メジャーバージョンを指定(最新のパッチバージョンが自動選択される)
$ mise use –global node@20
# バージョンをピン留めしたい場合は完全バージョンで
$ mise use –global node@20.19.2
# インストール済みの Node.js 一覧を確認
$ mise ls node
node 20.19.2 ~/.config/mise/config.toml
node 24.16.0 ~/.config/mise/config.toml (unused)

Python を mise で管理する

Python 3.12 をインストールする

Python は mise use --global python@3.12 でインストールします。mise の Python は python-build-standalone(CPython のプリビルドバイナリ)を使うため、Ubuntu デフォルトの pyenv とは違ってソースコードのコンパイルが不要です。




ubuntu@linuxlab: ~
$ mise use –global python@3.12
mise python@3.12.13 [1/3] extract cpython-3.12.13+20260610-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz
mise python@3.12.13 [1/3] python –version
mise python@3.12.13 [1/3] Python 3.12.13
mise python@3.12.13 ✓ installed
$ python –version
Python 3.12.13

プリビルドバイナリなので インストールは数秒で完了します。pyenv で Python をインストールするとソースコードのコンパイルで数分かかりますが、mise の場合はほぼ待ち時間ゼロです。

注意:pip は別途使えるか?

mise でインストールした Python には pip も同梱されています。pip install requests のように普通に使えます。ただし、仮想環境(venv)と組み合わせるのが安全です。python -m venv .venv && source .venv/bin/activate でプロジェクトごとに分離しましょう。

Go を mise で管理する

Go は mise use --global go@latest で最新版をインストールできます。ubuntu:24.04 の実測では、Go 1.26.4 が約21秒でインストールされました。




ubuntu@linuxlab: ~
$ mise use –global go@latest
mise go@1.26.4 [1/3] install
mise go@1.26.4 [1/3] download go1.26.4.linux-arm64.tar.gz
mise go@1.26.4 [2/3] checksum go1.26.4.linux-arm64.tar.gz
mise go@1.26.4 [3/3] extract go1.26.4.linux-arm64.tar.gz
mise go@1.26.4 ✓ installed
$ go version
go version go1.26.4 linux/arm64
$ go env GOPATH
/root/go

Go も Node.js と同様に公式バイナリを直接ダウンロードするため、コンパイル不要で高速にインストールできます。Go のバイナリは ~/.local/share/mise/installs/go/1.26.4/ に配置されます。

Ruby を mise で管理する

Ruby は mise use --global ruby@3.3 でインストールできますが、他の言語と少し違います。Ruby はネイティブコンパイルが必要なため、事前に build-essential などのビルドツールをインストールする必要があります。




ubuntu@linuxlab: ~
# Ruby のコンパイルに必要な依存パッケージを先にインストール
$ sudo apt install -y build-essential libssl-dev libreadline-dev zlib1g-dev
$ mise use –global ruby@3.3
mise ruby@3.3.x [1/3] build (数分かかります)
mise ruby@3.3.x ✓ installed
$ ruby –version
ruby 3.3.x (2024-xx-xx revision xxxxxxxx) [aarch64-linux]
著者アイコン
著者アイコン

Ruby だけは他の言語と違ってビルドに時間がかかります。Node.js や Python のような「数秒で終わる」感覚を想像していると驚くかもしれません。ここだけは事前に依存パッケージを入れるステップを忘れないようにしてください。

.mise.toml でプロジェクト別バージョンを固定する

mise の最も便利な機能の一つが、.mise.toml ファイルによるプロジェクト別バージョン管理です。プロジェクトのルートに .mise.toml を置くと、そのディレクトリに入るだけで自動的に指定バージョンに切り替わります。

.mise.toml によるプロジェクト別バージョン固定
.mise.toml によるプロジェクト別バージョン固定

手順1:.mise.toml を作成する




ubuntu@linuxlab: ~/myproject
$ cd ~/myproject
$ cat .mise.toml
[tools]
node = “20” # メジャーバージョンを指定
python = “3.11” # マイナーまで固定
go = “1.23”

手順2:.mise.toml のツールを一括インストールする

mise install を実行すると、.mise.toml に書いた全ツールを一括でインストールできます。チームメンバーが初めてプロジェクトをcloneしたときに、このコマンドを1回実行するだけで環境が揃います。




ubuntu@linuxlab: ~/myproject
$ mise install
mise node@20.19.2 ✓ installed
mise python@3.11.12 ✓ installed
mise go@1.23.10 ✓ installed

.mise.toml を git に git add .mise.toml でコミットしておけば、CI/CD でも同じバージョンを使えます。

実測インストール結果まとめ

ubuntu:24.04 コンテナで確認した、mise でインストールできる各言語バージョンの一覧です:

mise でインストールされた言語バージョン一覧
mise でインストールされた言語バージョン一覧
mise インストールから Node.js/Python/Go を一括導入するまでの全ログ
mise インストールから Node.js/Python/Go を一括導入するまでの全ログ

よくあるエラーと解決策

①「command not found: mise」が出る

インストール後に PATH が通っていない場合に発生します。




ubuntu@linuxlab: ~
$ mise –version
Command ‘mise’ not found
# → ~/.local/bin を PATH に追加する
$ export PATH=”$HOME/.local/bin:$PATH”
# 永続化するために ~/.bashrc にも書く
$ echo ‘export PATH=”$HOME/.local/bin:$PATH”‘ >> ~/.bashrc
$ source ~/.bashrc
$ mise –version
2026.6.6 linux-arm64 (2026-06-13)

②「node not found」「python not found」(mise でインストール後)

mise activate の設定が済んでいないと、インストールしたツールのバイナリが PATH に入りません。




ubuntu@linuxlab: ~
# mise doctor で状態を確認
$ mise doctor
1 problem found:
1. mise is not activated — run: mise activate bash
# → ~/.bashrc に activate を追加
$ echo ‘eval “$(~/.local/bin/mise activate bash)”‘ >> ~/.bashrc
$ source ~/.bashrc
$ node –version
v24.16.0

③ Python で「ModuleNotFoundError」が出る(SSL 関連)

Ubuntu のシステム Python に依存しているパッケージが、mise の Python で動かない場合があります。mise でインストールした Python はシステムのライブラリとは分離されているため、必要なライブラリが見つからないことがあります。




ubuntu@linuxlab: ~
# SSL 系のエラーが出る場合、まず openssl 関連パッケージを入れる
$ sudo apt install -y libssl-dev libffi-dev
# それでも解決しない場合は仮想環境を使う
$ python -m venv .venv
$ source .venv/bin/activate
$ pip install requests

④ Ruby でビルドエラーが出る

Ruby は build-essential がないとコンパイルに失敗します。




ubuntu@linuxlab: ~
# Ruby ビルドに必要なパッケージを全部入れる
$ sudo apt install -y build-essential libssl-dev libreadline-dev \
zlib1g-dev libyaml-dev libffi-dev liblzma-dev
$ mise use –global ruby@3.3

まとめ

本記事では、Ubuntu 24.04 LTS に mise をインストールして、Node.js・Python・Go・Ruby を1つのツールで管理する方法を解説しました。ubuntu:24.04 の Docker コンテナで実際に検証した結果をまとめると:

  • curl https://mise.run | bash の1コマンドで mise 2026.6.6 がインストールできた
  • Node.js LTS(v24.16.0)が約16秒、Go 1.26.4 が約21秒でインストールできた
  • Python 3.12.13 はプリビルドバイナリで数秒以内にインストールできた(pyenv より大幅に高速)
  • .mise.toml に書くだけでプロジェクトごとに言語バージョンを切り替えられる
  • mise doctor でセットアップの問題を自動診断できる

「nvm・pyenv・rbenv のシェル設定が多くて管理が大変……」と感じている方は、ぜひ mise への移行を検討してみてください。

VPS で本格的にサーバー運用するなら

mise を使った開発環境が整ったら、次は自分のVPSにデプロイしてみましょう。Vultr はコストパフォーマンスに優れており、月額$5〜で東京リージョンを選べます。

コメント

タイトルとURLをコピーしました