【エーエスディーエフ】

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)。覚えやすいように付けられた名前だよ
← 用語集にもどる