メインコンテンツまでスキップ

asdf

asdf は、複数のツールのバージョンを管理できるツールです。 指定したバージョンのツールを簡単にインストールできるため、とても便利です。

aptbrew などのパッケージマネージャーを使ってツールをインストールすることも可能ですが、asdf を使うことでバージョンの切り替えが簡単にでき、さらに便利になります。

このページでは asdf のかんたんな使い方を中心に説明します。

asdf の説明動画

無料コース 開発ツールをらくらく管理! asdf の使い方 があるので合わせてご参照ください。

asdf のインストール

はじめよう | asdf を見ながら asdf をインストールしてください。

操作の流れ

順番手順対応するコマンド説明
1プラグインの追加asdf plugin add <プラグイン名>ツールに対応するプラグインを追加する
(プラグインを追加していない場合のみ)
2ツールのインストールasdf install <ツール名> <バージョン>ツールのバージョンを指定してインストールする
3バージョンの指定asdf global <ツール名> <バージョン>
または
asdf local <ツール名> <バージョン>
利用したいバージョンをを指定する
- global: 全体
- local: プロジェクト単位

1. プラグインの追加

asdf は plugin を追加することで、インストールできる対象のツールを増やしていきます。

インストールしたいツールのプラグインは asdf-vm/asdf-plugins で確認できますが、コマンドでも確認できます。

asdf plugin list all を実行すると追加することができる plugin の一覧が表示されます。
そのため以下のようにするとコマンドのみでインストールしたいツールのプラグインがあるか確認できます。

asdf plugin list all | grep <追加したいツール>

例: kubectl を探す場合

asdf plugin list all | grep kubectl
実行結果
❯ asdf plugin list all | grep kubectl
kubectl *https://github.com/asdf-community/asdf-kubectl.git
kubectl-bindrole https://github.com/looztra/asdf-kubectl-bindrole.git
kubectl-buildkit https://github.com/ezcater/asdf-kubectl-buildkit.git
kubectl-convert https://github.com/iul1an/asdf-kubectl-convert.git
kubectl-kots https://github.com/ganta/asdf-kubectl-kots.git

上記で確認できたので、以下を実行すると kubectl の plugin を追加できます。

asdf plugin add kubectl

2. ツールのインストール

plugin を追加したらツールをインストールできます。 asdf は自分が使いたいバージョンのツールをインストールすることができます。インストール済みのバージョン画複数ある場合、かんたんに切り替えることも可能です。

まずはインストールできるバージョンを確認しましょう。 以下のコマンドでインストール可能なバージョンの一覧が確認できます。

asdf list all <インストールしたいツール>

例: kubectl の場合

asdf list all kubectl
実行結果
❯ asdf list all kubectl
...省略
1.30.0
1.30.1
1.30.2
1.31.0-alpha.0
1.31.0-alpha.1
1.31.0-alpha.2
1.31.0-alpha.3

上記でインストールできるバージョンがわかったらインストールを実行します。

例: kubectl 1.30.0 をインストールする場合

asdf install kubectl 1.30.0

また最新をインストールしたい場合は、 latest を指定できます。

例: kubectl の最新バージョンをインストールする場合

asdf install kubectl latest

インストールしたものは以下のコマンドで確認できます

例: インストールしたツールをすべて表示

asdf list
実行結果
❯ asdf list
helm
*3.15.4
jmespath
*0.2.1
kubectl
1.26.3
1.27.1
1.29.3
*1.30.0
minikube
1.30.0
1.30.1
*1.33.1

* が付いているバージョンを利用します(変更する際は asdf globalasdf local を使います)

例: kubectl のインストール済みのバージョンを確認する

asdf list kubectl
実行結果
❯ asdf list kubectl
1.26.3
1.27.1
1.29.3
*1.30.0

3. バージョンの指定

インストール済みのツールのコマンドはインストールしただけでは利用できません。

以下を実行すると指定したバージョンでツールのコマンドを利用できるようになります。

どのディレクトリでも指定バージョンのコマンドを利用できるように設定する

asdf global を使うことで、カレントディレクトリがどこであろうと指定したバージョンのツールのコマンドを利用できるようになります。

asdf global <ツール名> <バージョン>

例: kubectl 1.30.0 を使う場合

asdf global kubectl 1.30.0

なお、asdf global で設定したツールのバージョン情報は ~/.tool-versions の中で管理されています。

例: ~/.tool-versions の中身

❯ cat ~/.tool-versions
kubectl 1.30.0
nodejs 22.5.1

特定のディレクトリ以下で指定バージョンのコマンドを利用できるように設定する

asdf local を使うことで、特定のディレクトリ以下で作業するときのみツールのバージョンを変更することができます。

asdf local <ツール名> <バージョン>

例: kubectl 1.30.0 を使う場合

asdf local kubectl 1.30.0

asdf global と同様で、バージョン情報は .tool-versions で管理されます。
しかし、asdf global とは違い asdf local を実行したディレクトリ直下に .tool-versions が作成されます。

例: .tool-versions の中身

❯ cat ./.tool-versions
kubectl 1.30.0

asdf コマンドの例

kubectl を例にしたコマンドを表にまとめました。以下を参考に、他のコマンドもインストールしてみてください。

プラグイン関係の操作の例

説明コマンド
追加可能なプラグイン一覧を表示asdf plugin list all
追加済みのプラグイン一覧を表示asdf plugin list
kubectlのプラグインを追加asdf plugin add kubectl

コマンドのインストールと切り替え関係の操作の例

説明コマンド
インストール可能なkubectlの全バージョンを表示asdf list all kubectl
インストール済みのkubectlのバージョンを表示asdf list kubectl
kubectlの最新のバージョンをインストールasdf install kubectl latest
kubectlの最新バージョンをグローバルに設定asdf global kubectl latest
kubectlの特定のバージョンをインストールasdf install kubectl 1.30.0
kubectlのバージョンをグローバルに設定asdf global kubectl 1.30.0

※ install をしただけではコマンドは利用できません。インストール後に asdf global を実行してください。