created: 2023-08-10T10:35:42.515Z
pyenv, nodebrew から asdf への移行作業
まず asdf 本体をインストールして plugin も入れる。
brew install asdf
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
asdf plugin add python
# バージョン管理ソフト使ってなかったけど入れる
asdf plugin add perl
asdf plugin add golang https://github.com/kennyp/asdf-golang.git
既存のpyenv使用箇所を探す
次に .(pyenv|nodebrew)
と書いてある .envrc
ファイルを探す。
find ~/.ghq -type d -name 'node_modules' -prune -o -type l,f -name '*.envrc*' \
| grep -v 'node_modules' \
| xargs -I{} grep -lE '.(pyenv|nodebrew)' {} \
| tee /tmp/_
使われている nodejs のバージョンを一覧から xargs
で全部入れ
cat /tmp/_ \
| xargs cat \
| perl -nlE '/nodebrew\/node\/v(.+?)\/bin/ and say $1' \
| sort | uniq \
| xargs asdf install nodejs
れたらかっこよかったのだが、 apple シリコンだと古い nodejs はビルドが必要だったりして辛そうだった。 v16以降のメジャーバージョンの最新を見繕ってインストールした。
.bashrc
こんな分岐を入れながら設定する。
if [ -e "$HOMEBREW_PREFIX/bin/asdf" ]; then
ASDF_PREFIX=$(brew --prefix asdf)
# shellcheck source=/dev/null
source "$ASDF_PREFIX/libexec/asdf.sh"
# shellcheck source=/dev/null
source "$ASDF_PREFIX/etc/bash_completion.d/asdf.bash"
fi
.envrc の更新
.tool-versions
というファイルで管理するのが asdf の流儀なようだが、既存のプロジェクトは .envrc
で管理してみる。
環境変数を入れておいても同様に動作してくれるa。
export ASDF_PYTHON_VERSION=3.11.4