【エーエスディーエフ】

asdf(マルチランタイムバージョン管理) とは?

💡 言語バージョンの『万能リモコン』
📌 このページのポイント
asdf ― マルチランタイムバージョン管理 asdf Node.js v20.11.0 Python 3.12.1 Ruby 3.3.0 Go 1.22.0 .tool-versions nodejs 20.11.0 python 3.12.1 ruby 3.3.0 golang 1.22.0
asdfによる複数言語バージョンの一元管理
ひよこ ひよこ

プロジェクトごとにNode.jsのバージョンが違って困ってるんだけど…

ペンギン先生 ペンギン先生

そういう時こそasdfの出番だよ。プロジェクトのフォルダに.tool-versionsファイルを置いておけば、そのフォルダに入った瞬間に自動でバージョンが切り替わるんだ

ひよこ ひよこ

nvmとかpyenvとか、言語ごとにツールを使い分けなくていいの?

ペンギン先生 ペンギン先生

そう、それがasdfの最大のメリットだね。1つのツールでNode.jsPythonRubyもGoも全部管理できる。覚えるコマンドも統一されるから楽だよ

ひよこ ひよこ

.tool-versionsファイルってチームで共有できるの?

ペンギン先生 ペンギン先生

もちろん。Gitにコミットしておけばチーム全員が同じバージョンで開発できる。新しいメンバーがjoinしても`asdf install`一発で環境が揃うんだ

ひよこ ひよこ

対応してない言語やツールがあったらどうするの?

ペンギン先生 ペンギン先生

asdfはプラグインシステムを採用していて、コミュニティが作った何百ものプラグインがあるよ。TerraformやkubectlみたいなCLIツールのバージョン管理もできるんだ

ひよこ ひよこ

最近miseっていう似たツールも聞くけど…

ペンギン先生 ペンギン先生

miseはasdfと互換性がある後発ツールで、速度やUXが改善されてるんだ。.tool-versionsファイルもそのまま使える。asdfで慣れておけばmiseへの移行もスムーズだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「asdf」って出てきたら「いろんな言語のバージョンをまとめて管理するツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「asdf」 = キーボードのホームポジション左手
💬 名前の由来はキーボードのホームポジション左手の4キー(a, s, d, f)。覚えやすいように付けられた名前だよ
← 用語集にもどる