asdf globalコマンドが消えた / 使えない
TL; DR
asdf
を v0.16.0 以降にアップグレードすると、 おなじみの asdf global
コマンドが使えなくなっているのでその対処方法を記しておきます。
globalのバージョン指定
asdf global nodejs 23.5.0
は
asdf set --home nodejs 23.5.0
で置き換えると良い
.tool-versionsへのバージョン指定
asdf local nodejs 23.5.0
は
asdf set --parent nodejs 23.5.0
で置き換えると良い
背景
要約
global
で設定した値が、.tool-versions
で上書きされてしまう挙動が、ユーザーの混乱を招くので、変更した。今後は、 asdf set
コマンドのオプションで asdf global
と asdf local
の機能を提供します、ということらしい。
和訳(Claude 3.5 Sonnetによるもの)
asdf globalとasdf localコマンドは削除されました。「global(グローバル)」と「local(ローカル)」という用語は不適切で誤解を招くものでした。asdfは実際には、どこでも適用される「グローバル」バージョンをサポートしていません。asdf globalで指定されたバージョンは、現在のディレクトリにある.tool-versionsファイルで異なるバージョンが指定されていれば、簡単に上書きされてしまいます。これはユーザーにとって混乱の原因となっていました。
新しいasdf setは、デフォルトではasdf localと同じように動作しますが、ユーザーのホームディレクトリ(--homeオプション)や親ディレクトリのいずれかにある既存の.tool-versionsファイル(--parentオプション)でバージョンを設定するためのフラグも備えています。この新しいインターフェースにより、asdfがバージョンをどのように解決するかについてより良い理解が得られ、同等の機能が提供されることが期待されます。
原文
asdf global
andasdf local
have been removed. The "global" and "local"
terminology was wrong and also misleading. asdf doesn't actually support
"global" versions that apply everywhere. Any version that was specified with
asdf global
could easily be overridden by a.tool-versions
file in your
current directory specifying a different version. This was confusing to users.
The newasdf set
behaves the same asasdf local
by default, but also has
flags for setting versions in the user's home directory (--home
) and in an
existing.tool-versions
file in one of the parent directories (--parent
).
This new interface will hopefully convey a better understanding of how asdf
resolves versions and provide equivalent functionality.
より転載
Discussion