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 globalandasdf localhave 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 globalcould easily be overridden by a.tool-versionsfile in your
current directory specifying a different version. This was confusing to users.
The newasdf setbehaves the same asasdf localby default, but also has
flags for setting versions in the user's home directory (--home) and in an
existing.tool-versionsfile 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