【エーエスディーエフ】

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

最終更新:
💡 プロジェクトの指定に合わせ、使うツールの版を選ぶ

プラグインを使い、複数の開発ツールのバージョンを管理するツール。.tool-versionsでの指定と、導入・インストール・実行時の選択を区別して説明します。

📌 このページのポイント
asdf:プロジェクトの指定で版を選ぶプロジェクトAこの場所の版を指定プロジェクトB別の版も指定できる.tool-versions実行時に、この場所から親へ指定を探すNode.js指定した版Python指定した版Ruby指定した版プラグイン・ツールの導入とPATH設定が必要
各ツールのプラグインを使う例。指定した版を事前に導入し、shimsを通して実行します。ファイルの共有だけでアプリの依存関係やOSすべてがそろうわけではありません。
ひよこ ひよこ
Node.jsとPythonの版を、それぞれ管理できる?
ペンギン先生 ペンギン先生
対応するプラグインを入れると、複数のツールの版をasdfで管理できるよ。プロジェクトで使う版は.tool-versionsというファイルに記録するんだ。
ひよこ ひよこ
フォルダーに入るだけで、必要なものが全部入る?
ペンギン先生 ペンギン先生
版の選択とインストールは別だよ。必要なプラグインとツールの版を先に導入し、shimsという実行の窓口をPATHに設定する。ツールを実行するときに、現在の場所から親の.tool-versionsを探して指定した版を選ぶんだ。
ひよこ ひよこ
今のプロジェクトの版は、どう指定する?
ペンギン先生 ペンギン先生
現在の公式手順ではasdf setで指定を記録するよ。例えばnodejsの版を指定すると.tool-versionsに書かれる。asdf currentなら、この場所で解決される版を確認できる。ファイルに指定しただけでは、その版が導入済みとは限らないんだ。
ひよこ ひよこ
ファイルをGitで共有すれば、全員の環境は同じ?
ペンギン先生 ペンギン先生
共有できるのは主にツールの版の指定だよ。各環境でプラグインや必要な依存関係を用意し、指定した版を導入する。アプリのライブラリやOSの違いまで全部そろうわけではないので、導入手順も一緒に残そう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「asdf」って出てきたら「複数の開発ツールの版を、プロジェクトごとに管理するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「asdf」 = 開発ツールのバージョン管理ツール名
💬 ツールごとのプラグインと.tool-versionsを使います。対応するツールや導入に必要な依存関係は、各プラグインの説明で確認します。

参考資料

← 用語集にもどる