Zenn
🐟

asdf でバージョン管理

2025/02/08に公開
2

はじめに

久しぶりに利用したら、asdf がアップデートされており、コマンドも変わっていたので、改めて記事化しておきます。

asdf とは

asdf は、複数の言語やツールのバージョン管理を一括で管理できるツールです。

https://asdf-vm.com/

要素 説明
多言語対応 asdfは、Ruby、Python、Node.js、Elixir、Erlangなど、多くのプログラミング言語やツールのバージョン管理に対応しています。
プラグイン方式 各言語やツールのサポートはプラグインとして提供されるため、必要なものだけを追加できます。
ロジェクトごとのバージョン管理 .tool-versions ファイルを使用して、プロジェクトごとに異なるバージョンの言語やツールを指定できます。
簡単な使用方法 コマンドラインから簡単にインストール、アンインストール、バージョン切り替えが可能です。
競合の回避 システムにインストールされた他のバージョン管理ツールと競合せずに使用できます。

インストール

Homebrew で asdf をインストールします。

brew install asdf

~/.zshrc に以下の設定を追加します。

+export PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"

設定後はシェルを再起動させて、設定を反映させます。

exec $SHELL -l

プラグイン

プラグインは、asdf で管理するツールのプラグインです。

インストール可能なプラグイン一覧

plugin list all でインストール可能なプラグインの一覧を確認します。

asdf plugin list all
1password-cli                               https://github.com/NeoHsu/asdf-1password-cli.git
R                                           https://github.com/asdf-community/asdf-r.git
aapt2                                       https://github.com/ronnnnn/asdf-aapt2.git
act                                         https://github.com/gr1m0h/asdf-act.git
action-validator                            https://github.com/mpalmer/action-validator.git
...

Node.js が存在するか確認します。

asdf plugin list all | grep nodejs
nodejs                                      *https://github.com/asdf-vm/asdf-nodejs.git

プラグインのインストール

plugin add <plugin> で指定のプラグインをインストールします。

asdf plugin add nodejs
asdf plugin add pnpm

インストール済みのプラグイン

plugin list でインストール済みのプラグイン一覧を確認します。

asdf plugin list
nodejs
pnpm

バージョン

バージョンは、asdf で管理するプラグインのバージョンです。

インストール可能なプラグインのバージョン

list all でインストール可能なバージョンを確認できます。

asdf list all nodejs

Node.js のバージョン一覧を確認できます。

...
23.0.0
23.1.0
23.2.0
23.3.0
23.4.0
23.5.0
23.6.0
23.6.1
23.7.0
...

バージョンのインストール

install <plugin> <version> で指定のプラグインの指定のバージョンをインストールします。asdf では複数のバージョンをインストールでき、プロジェクトに応じて利用するバージョンを切り替えることができます。

asdf install nodejs latest
asdf install nodejs 20.11.1
asdf install pnpm latest
asdf install pnpm 9.14.5

インストール済みのバージョン

list でインストール済みのバージョンを確認します。

asdf list

先ほどインストールしたバージョンが表示されます。

nodejs
  20.11.1
  23.7.0
pnpm
  9.14.4
  9.15.5

グローバルで利用するバージョン

set -u でグローバルで利用するバージョンを指定します。

asdf set -u nodejs 23.7.0
asdf set -u pnpm 9.15.5

あらためて、インストール済みのバージョンを確認すると、グローバルで利用するバージョンには * が付いています。

asdf list
nodejs
  20.11.1
 *23.7.0
pnpm
  9.14.4
 *9.15.5

ローカルで利用するバージョン

set <plugin> <version> で現在のディレクトリで利用するバージョンを指定します。

asdf set nodejs 20.11.1
asdf set pnpm 9.15.5

ローカルに .tool-versions ファイルが作成されます。

nodejs 20.11.1
pnpm 9.15.5

チーム開発している際に .tool-versions を共有することで、バージョンを統一できます。

プラグインの更新

plugin update <plugin> で指定のプラグインを更新します。

asdf plugin update nodejs
asdf plugin update pnpm

plugin update --all で全てのプラグインを更新します。

asdf plugin update --all

プラグインの削除

plugin remove <plugin> で指定のプラグインを削除します。

asdf plugin remove nodejs
asdf plugin remove pnpm

さいごに

asdf は、複数の言語やツールのバージョン管理を一括で管理できるツールです。複数の言語やツールを利用する場合には、ぜひ導入してみてください。

2

Discussion

ログインするとコメントできます