Closed12

asdf 0.16.x の破壊的な変更に対応

keitaknkeitakn

概要

Homebrewでインストールした asdf がアップグレードされ色々と破壊的な変更が入り、環境が壊れてしまったので再構築した時のメモを記載します。

keitaknkeitakn

最初に試したこと

まずは公式のアップグレード手順の通りに試してみたのですが結論これは駄目でした。

https://asdf-vm.com/guide/upgrading-to-v0-16.html

実際に asdf install nodejs 22.14.0 などを実行して node -v を実行しても認識してくれないようになってしまいました。

keitaknkeitakn

なので一度 asdf を完全に削除してから再インストールする方針にしました。

以下を参考にしながら以下を実行しました。

https://mac.install.guide/faq/uninstall-asdf/

asdfを強制的にアンインストール

brew uninstall --force asdf

未使用のasdf関連の依存関係を削除

brew autoremove

削除されていることを確認

brew list asdf
Error: No such keg: /opt/homebrew/Cellar/asdf

関連ファイルの削除

~/.zshrc から asdf 関連の記述を全て削除。

設定ファイルやシンボリックリンクの保存先などの関連ファイルを全て削除。

rm -rf ~/.asdf/
rm -rf ~/.tool-versions
keitaknkeitakn

asdf を再度インストール

brew install asdf

~/.zshrc に以下を追加、最低限これだけで良い。

export PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"

他にもデータの保存先を変えたり、オートコンプリートの設定をやる場合は以下を参照。

https://asdf-vm.com/guide/getting-started.html

ちなみに最近のターミナル(自分はWarpを使っている)は大体AIが搭載されているのでコマンドの補完機能がなくても特に不便は感じないので自分は設定していないです。

keitaknkeitakn

Node.jsの再設定

asdf のNode.jsプラグインを追加。

asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

補足: Plugin一覧の確認

ちなみにPluginの一覧は下記を参照。

https://github.com/asdf-vm/asdf-plugins

または以下のコマンドを実行することでも確認可能です。

asdf plugin list all
keitaknkeitakn

指定したNode.jsのインストール

asdf install nodejs 22.14.0

全体で利用するNode.jsを指定

asdf set -u nodejs 22.14.0

プロジェクト固有で利用するNode.jsを指定

asdf set nodejs 22.14.0
keitaknkeitakn

Terraform の再設定

以下でTerraform用のPluginを追加します。

asdf plugin add terraform https://github.com/asdf-community/asdf-hashicorp.git

注意点として 公式 のコマンドは古いです。

簡単な修正なのでPRを出しておきました。

https://github.com/asdf-community/asdf-hashicorp/pull/81

インストール可能なバージョンを確認

asdf list all terraform

指定したバージョンをインストール

asdf install terraform 1.10.5

プロジェクトに設定

asdf set terraform 1.10.5

指定したバージョンがプロジェクトルートで使われていることを確認

terraform --version
Terraform v1.10.5
on darwin_arm64

Your version of Terraform is out of date! The latest version
is 1.11.2. You can update by downloading from https://www.terraform.io/downloads.html
keitaknkeitakn

Pythonの再設定

最近は uv を使うことが多くPythonのバージョン管理も uv でやっているのでPythonを asdf で管理する機会は減っているのだが poetry を使っているプロジェクトもあるので一応設定しておく。

Python用のPluginを追加

asdf plugin add python

利用可能なPythonのバージョンを閲覧

asdf list all python

指定したPythonバージョンのインストール

asdf install python 3.11.4

プロジェクト固有のPythonバージョンの設定

asdf set python 3.11.4
keitaknkeitakn

Bun

Bun用Pluginの追加

asdf plugin add bun

利用可能なBunのバージョンを閲覧

asdf list all bun

指定したバージョンのインストール

asdf install bun 1.2.12

プロジェクト固有のバージョン設定

asdf set bun 1.2.12
このスクラップは3ヶ月前にクローズされました